gpt4 book ai didi

c - 从 C 中的 parent 那里 fork 任意数量的 child ?

转载 作者:太空宇宙 更新时间:2023-11-04 00:27:44 25 4
gpt4 key购买 nike

我找到了如何通过这样的东西来 fork 多个 child 的例子:

if ( fork() = 0 ) {
//In child
} else {
if ( fork() = 0 ) {
//in second child

但如果我不知道我需要多少个 child ,我该怎么办?

例如,如果我有一个命令的链接列表,我想为每个命令 fork 和执行...所以我想我也需要知道它是哪个 child ...

最佳答案

按照您的说法,您需要为链表执行此操作:

linked_list_of_commands_t *node = root;
while (node != NULL) {
int pid = fork();
if (pid == -1) {
break; // handle error
} else if (pid == 0) {
// child
execv(node->command, node->argv);
exit(1); // execv should not return, but just in case the execv call fails
} else {
node = node->next;
}
}

这将为列表中的每个项目启动一个单独的进程。

关于c - 从 C 中的 parent 那里 fork 任意数量的 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1462894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com