子进程完成后调用函数

时间:2011-04-28 06:26:41

标签: c++ function process

在我的c ++程序中,使用fork和execv启动了几个子进程。我不等他们,所以他们在后台跑。当他们完成运行时,我想运行某个功能。怎么办呢?

2 个答案:

答案 0 :(得分:2)

听取SIGCHLD信号并在处理程序中调用您的函数。小心你在处理程序中调用的内容,你应该只调用 async-signal-safe 函数。

答案 1 :(得分:0)

我猜你想要等待进程完成,但是你想要并行而不是按顺序运行进程。如果是这样,请像现在一样启动每个进程,然后对每个子pid使用waitpid()系统调用。当每个进程都退出时,每个waitpid都会返回。