fork

本文解析了Linux下fork函数的工作原理,详细说明了通过fork创建进程的方式,并探讨了如何利用fork函数创建指定数量的进程。同时介绍了fork过程中不被复制的资源属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://linux.die.net/man/2/fork

fork函数创建一个进程,是父进程的完全复制,内存之类的,但是下列的不会复制

子进程有自己的pid,唯一

父进程id是创建者ID

使用率http://linux.die.net/man/2/getrusage和CPU counter置为0

signal为空

信号量控制也不继承

记录锁也不继承

timer不继承

异步IO不继承


问题一,下列代码产生的进程数量

int i =0;
for(;i<n;i++){
    fork();
}
产生多少个进程,包含自己

fork本身的意思就是叉开的意思,所以可以理解为二叉树的形式,即,二叉树的结点个数是进程的个数,二叉树的层数是for的n

画画图就知道了,所以最终是2^n个,包括自身


问题二,如何产生指定进程数量n


for循环,如果产生进程pid为0,return。性质利用了fork产生后在父进程是>0的pid,在子进程内是0



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值