进程管理中vfork函数

vfork函数的调用和返回值与fork函数的相同,但是两者的功能有所不同。
1.fork创建的子进程会复制其父进程的数据段和堆栈段;vfork的父进程共享数据段。
2.vfork并不会把父进程的地址空间完全复制给子进程,因为子进程会立刻调用exec或者exit,也就不会访问该地址空间,只在子进程调用exec之前,在父进程空间中运行。
3.vfork函数保证子进程先运行,在它调用exec或者exit之后父进程才可以调度运行。如果在调用这两个函数之前子进程依赖于父进程的进一步操作,将会导致死锁。
vfork函数的用法演示:
在这里插入图片描述
在这里插入图片描述
从程序的运行结果来看,子进程对变量做了+1操作,结果父进程又改变了子进程的变量值并继续+1。因为vfork的子进程在父进程的地址空间内运行,属于一个地址空间,而fork是子进程和父进程运行在不同的地址空间中,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值