linux中fork函数与vfork函数的区别

简介: linux中fork函数与vfork函数的区别

fork函数跟vfork函数一样能够创建进程,它们主要有两个区别

(1)区别一:

vfork直接使用父进程存储空间,不拷贝。

(2)区别二:

vfork保证子进程先运行,当子进程调用exit退出后,父进程才执行。

一直运行子进程

调用exit退出子进程

运行三秒后父进程开始运行

代码如下:

#include <stdio.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
 
 
int main()
{
    pid_t pid;
 
    int cnt = 0;
    
    pid = vfork();
        
    if(pid > 0)
    {
        while(1){
            printf("cnt=%d\n",cnt);
            printf("this is father precess, pid = %d\n",getpid());
            sleep(1);
        }    
    }
    
    else if(pid == 0){
        
        while(1){
            printf("this is chilid precess, pid = %d\n",getpid());
            sleep(1);
            cnt++;
            if(cnt == 3){
                exit(0);
                break;
            }
        }    
    }
 
    return 0;
}
 
相关文章
|
5天前
|
算法 Linux 调度
Linux进程——进程的创建(fork的原理)
Linux进程——进程的创建(fork的原理)
9 2
|
13天前
|
Linux C++
Linux C/C++ main函数
Linux C/C++ main函数
|
30天前
|
Linux Shell
Linux下su与su -命令的本质区别_6、用su命令和su -切换账户时,两个命令有什么区别 (1)
Linux下su与su -命令的本质区别_6、用su命令和su -切换账户时,两个命令有什么区别 (1)
Linux下su与su -命令的本质区别_6、用su命令和su -切换账户时,两个命令有什么区别 (1)
|
1月前
|
Unix Linux 调度
linux线程与进程的区别及线程的优势
linux线程与进程的区别及线程的优势
|
1月前
|
Linux
linux中wait与waitpid函数使用场景及扩展
linux中wait与waitpid函数使用场景及扩展
|
1月前
|
存储 算法 网络协议
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
26 0
|
14小时前
|
运维 Linux 数据处理
探索Linux命令lsinitrd:深入了解与实用指南
`lsinitrd`命令在Linux中用于查看initrd文件内容,它是系统引导时加载驱动和模块的关键组件。此命令无需挂载,支持gzip和cpio格式,提供详细输出,包括文件属性。使用`-a`, `-l`, `-R`参数可调整显示方式。例如,`lsinitrd -l initrd.img-版本号`列出详细信息。注意权限,确保正确路径,操作前备份数据,并可与其他命令结合使用。
|
14小时前
|
缓存 监控 Linux
深入了解Linux的`lscpu`命令:你的CPU信息专家
`lscpu`是Linux下的命令行工具,用于获取CPU详细信息,如架构、核心、线程、缓存和型号。它从系统文件读取数据,提供实时信息,支持多种输出格式,如扩展视图、解析格式。常用参数包括显示所有CPU (`-a`)、在线CPU (`-b`) 和可解析格式 (`--parseable`)。结合其他工具,`lscpu`在系统管理和性能调优中十分有用。
|
14小时前
|
存储 数据挖掘 Linux
探索Linux的ls命令:深入解析与实用指南
**探索Linux的`ls`命令:简明指南** `ls`命令用于列出目录内容,是Linux用户的基础工具。它提供灵活的参数定制输出,如 `-l` 显示详细信息,`-a` 显示隐藏文件,`-h` 以易读格式显示大小,`-R` 递归列出子目录。结合其他命令和管道,`ls`能用于数据分析。注意权限和使用最佳实践,如避免多余参数,谨慎使用通配符,并利用`man ls`查阅手册以深入学习。善用`ls`能提升Linux操作效率。
|
14小时前
|
Ubuntu Linux Shell
Linux logname命令:揭秘当前登录用户的身份
`logname`命令在Linux中显示当前登录用户的用户名。它读取`/var/run/utmp`或`/etc/utmp`文件获取信息,简单直接,数据可靠。适用于多种Linux发行版。在终端输入`logname`即可查看用户名,也可在脚本中使用以动态调整内容。注意,`logname`不考虑`LOGNAME`或`USER`变量,适用于本地登录,无权限问题。在脚本中应处理无对应条目的情况。