fork与vfork

本文探讨了fork和vfork两种进程创建方式。fork创建的子进程会拷贝父进程的数据,而vfork则直接使用父进程的存储空间,确保子进程先运行,结束后父进程才开始执行。通过示例程序展示了它们在实际运行中的不同行为,特别是在子进程退出条件设定后的运行顺序。
摘要由CSDN通过智能技术生成
  1. fork运行后子进程拷贝一份父进程的数据,父进程和子进程不知道谁先运行,完全看系统的调度
  2. vfork直接运用父进程存储空间,不拷贝,vfork保证子进程先运行,运行结束后(exit后)父进程再运行。

先看看fork的程序运行

#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>

int main()
{
   
        pid_t pid;

//      printf("Father pid is%d\n",getpid());
        int data=10;

        pid=fork();
        if(pid>0)
        {
   
        while(1)
        {
   
                printf("This is father!,pid=%d\n",getpid());
                sleep(1);
        }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大家好我是覃同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值