如何获取衍生程序的返回码

时间:2011-04-26 16:02:06

标签: c++ linux process

这将运行一个程序并给我返回代码。

int returnCode;

returnCode = system(program);

我怎么能用execv做同样的事情?

2 个答案:

答案 0 :(得分:5)

exec系列调用会废弃当前进程并在同一进程空间内启动新程序。如果要在当前程序中执行另一个程序,则需要使用fork生成一个新进程然后在子进程中调用exec并让父进程等待子进程完成。然后waitpid函数将提供子进程的返回码。

有关示例,请参阅here

答案 1 :(得分:0)

我引用the man page

  

exec()系列函数   替换当前的过程映像   使用新的过程映像。

即,exec不会返回。您希望实现什么,或者换句话说,系统出了什么问题?