用fork()函数生成进程链、进程扇和进程二叉树

本文通过示例代码详细解释如何使用Unix的fork()函数生成进程链、进程扇和进程二叉树。通过调整参数,可以观察不同进程结构的生成过程,例如使用fork()函数在不同循环中创建多个子进程,形成复杂的进程关系。通过运行程序并结合`ps -ef`命令观察进程状态,深入理解fork()的工作原理。
摘要由CSDN通过智能技术生成

生成进程链,代码参考unix系统编程


#include <stdio.h>

#include <stdlib.h>

int main(int argc,char *argv[])
{
pid_t child_pid;
int i,n;

if(argc != 2)
{
fprintf(stderr,"Usage: %s processes\n",argv[0]);
return 1;
}
n = atoi(argv[1]);
/*
for (i=1;i<n;i++)
{
child_pid = fork();
if(child_pid > 0)
break; //返回值大于0,是父进程,这个返回值是子进程pid
else if (child_pid == 0)
;  //返回值=0是子进程
else if (child_pid < 0)
printf ("fork() failed\n");
}
*/

//比原书下面的代码要清晰


for (i=1;i<n;i++)
//if(child_pid=fork())
if(child_pid=fork()!=0)
break;


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值