C语言创建5个子进程,c - 在C语言中,如何创建多个子进程(不知道需要多少个子进程)? - 堆栈内存溢出...

像这样:

int childs = 5; // I want 5 childs

pid_t pid;

while (childs > 0)

{

if ((pid = fork()) == -1)

return (1); // handle this error as you want

if (pid == 0)

break;

childs--;

}

// the child go there directly

您可以使用pid_t的数组/列表来记住所有孩子,并使用waitpid检查他们的状态。

编辑:

不同方式处理孩子并通过数组记住孩子的方法:

int childs = 5; // I want 5 childs

pid_t pid[childs];

int i;

for (i=0; i < childs; ++i) {

if ((pid[i] = fork()) == -1)

return (1); // handle this error as you want

if (pid[i] == 0) {

break;

}

}

switch (i) {

case 0:

return(function0());

break;

case 1:

return(function1());

break;

case 2:

return(function2());

break;

case 3:

return(function3());

break;

case 4:

return(function4());

break;

default:

;

}

我不完全知道您要做什么,您也可以在有条件的情况下使用模(%)运算符来调用正确的函数。 我在那儿使用return,因为我们不想再停留在for循环中了,'functionx()'将完成整个新过程。 您也可以在函数中使用。

现在,您有了一个pid_t数组,因此可以循环检查孩子的状态。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值