0

在我之后fork(),孩子将进行一些比较,涉及一些函数调用和设置一些标志。父母只是走到尽头等待孩子。在一种情况下,我不希望父母等待孩子(在后台运行)。我认为问题在于孩子设置标志的时间太长,而父母已经结束了。跟随父进程和子进程显示标志设置正确但父进程未正确读取。有没有办法让父母停下来?

4

2 回答 2

0

一旦你从父级派生一个子级,它们就会成为具有自己地址空间的不同进程。因此,子项对变量所做的更改对父项不可见。

在这两个进程之间进行通信。您应该使用任何这些IPC机制。我确实相信共享内存方法最适合您的需求,因为子进程可以获得父内存页面的快照。

于 2013-02-04T13:27:55.953 回答
0

您可以使用wait(2)使用子进程的 pid 来停止父进程,直到子进程终止。正如 Dipstick 所说,如果不需要创建新进程,线程会更好。由于没有任务切换,线程使程序更复杂,但比进程更有效(我猜是 1000 倍)。考虑:Pthreads

于 2013-02-04T12:18:15.633 回答