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;
}
 
相关文章
|
2天前
|
Linux Shell
Linux下su与su -命令的本质区别_6、用su命令和su -切换账户时,两个命令有什么区别 (1)
Linux下su与su -命令的本质区别_6、用su命令和su -切换账户时,两个命令有什么区别 (1)
Linux下su与su -命令的本质区别_6、用su命令和su -切换账户时,两个命令有什么区别 (1)
|
8天前
|
Unix Linux 调度
linux线程与进程的区别及线程的优势
linux线程与进程的区别及线程的优势
|
8天前
|
Linux
linux中wait与waitpid函数使用场景及扩展
linux中wait与waitpid函数使用场景及扩展
|
8天前
|
存储 算法 网络协议
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
18 0
|
8天前
|
消息中间件 Unix Linux
【探索Linux】P.14(进程间通信 | 匿名管道 | |进程池 | pipe() 函数 | mkfifo() 函数)
【探索Linux】P.14(进程间通信 | 匿名管道 | |进程池 | pipe() 函数 | mkfifo() 函数)
28 0
|
8天前
|
Linux Shell
Linux中system函数
Linux中system函数
11 0
|
1天前
|
Shell Linux 程序员
【Linux】Shell 命令以及运行原理
【Linux】Shell 命令以及运行原理
|
2天前
|
Linux
【超全】Linux命令思维导图总结 值得收藏
【超全】Linux命令思维导图总结 值得收藏
8 0
|
2天前
|
Linux 文件存储 Windows
Linux常用的基础命令
Linux常用的基础命令
9 1
|
2天前
|
运维 关系型数据库 MySQL
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
day03-Linux运维-Xshell优化和Linux系统命令入门(2)