【发布时间】:2011-12-11 22:35:31
【问题描述】:
popen() alternative - 我正在使用accepted 答案(pipe/fork/exec 方法)来解决我的问题。唯一不同的是,我使用的是execv,而不是execl。
现在,我的问题是,父进程是否可以控制execv 创建的子进程?假设accepted 答案中建议的整个序列用于拖尾 1 个文件,我有很多这样的文件;我把这整个序列放在一个函数中,如果我在某个时间点多次调用这个函数,是否有可能有很多子 tail 进程在附近?
我想知道的是,
1)我可以在任何时间点运行多个子进程吗?
2)子进程(由execv创建)如何终止?在execv 调用之后,父进程是否知道子进程(由 execv 创建)何时完成/终止? - 回答。
【问题讨论】:
-
如果你能够使用它,GLib 对这些东西有一个防弹的实现:developer.gnome.org/glib/2.30/glib-Spawning-Processes.html 很难搞定(我知道,因为我写了一个 GLib,当然它可能还不是很好,但它处理了大量的细节)
-
短语“execv 创建的子进程”不正确。 execv 不会创建孩子。