C语言 如何在父进程中选择等待和不等待



假设我有两个函数xy,这两个函数都在调用另一个函数z

我分叉这个函数 z

我想做的是以下内容。

  1. 如果我的调用函数是 x.等待孩子在父进程

  2. else 如果调用函数是 y.不要等待孩子,(好像它同时运行)。

我怎样才能实现这样的行为,如果可能的话?

还是我必须制作两个单独的函数 z1z2

z1 中我分叉并等待,在 z2 中我分叉,我不等待。

我想在 c 中做到这一点

你可以将一个参数传递给z,指示z是否应该等待孩子。或者,您可以z返回子进程 ID,而无需等待它。然后,您可以在x中手动调用waitpid以显式等待z分叉的进程:

waitpid(z(), NULL, 0);

当然,您还需要进行错误处理。

最新更新