假设我有两个函数x和y,这两个函数都在调用另一个函数z。
我分叉这个函数 z。
我想做的是以下内容。
-
如果我的调用函数是 x.等待孩子在父进程
-
else 如果调用函数是 y.不要等待孩子,(好像它同时运行)。
我怎样才能实现这样的行为,如果可能的话?
还是我必须制作两个单独的函数 z1 和 z2
在 z1 中我分叉并等待,在 z2 中我分叉,我不等待。
我想在 c 中做到这一点
你可以将一个参数传递给z
,指示z
是否应该等待孩子。或者,您可以z
返回子进程 ID,而无需等待它。然后,您可以在x
中手动调用waitpid
以显式等待z
分叉的进程:
waitpid(z(), NULL, 0);
当然,您还需要进行错误处理。