假设我有两个功能 x & y ,这两个函数都在调用另一个函数 z 。
我在这个函数 z 中分叉。
我想做的是以下内容。
如果我的通话功能是 x 。等孩子完成了 父流程
else如果调用函数是 y 。不要等孩子,(好像它 正在同时运行。
我怎样才能实现这种行为?如果可能的话?
或者我必须做两个单独的功能 z1 &的 Z2
在 z1 的地方,叉子等待,在 z2 我叉,我不等。
我想在c
中这样做答案 0 :(得分:1)
您可以将参数传递给z
,指示z
是否应该等待孩子。或者,您可以使z
返回子进程ID,而无需等待它。然后,您可以在waitpid
中手动呼叫x
,以明确等待z
分叉的流程:
waitpid(z(), NULL, 0);
当然,您也需要进行错误处理。