【发布时间】:2010-11-16 10:50:10
【问题描述】:
我正在编写一个必须执行其他外部进程的程序;现在程序通过 popen 启动进程的命令行,获取任何输出,然后通过 pclose 获取退出状态。
然而,正在发生的是,对于快速运行的进程(例如,启动的进程很快出错),pclose 调用无法获得退出状态(pclose 返回 -1,errno 为 ECHILD)。
我有没有办法模仿 popen/pclose 类型的行为,除非以保证捕获进程结束“事件”和结果返回码的方式?如何避免 pclose 的固有竞争条件和启动进程的终止?
【问题讨论】: