【问题标题】:How to get the return code of a spawned program如何获取衍生程序的返回码
【发布时间】:2011-04-26 16:02:05
【问题描述】:

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

int returnCode;

returnCode = system(program);

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

【问题讨论】:

    标签: c++ linux process


    【解决方案1】:

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

    有关示例,请参阅 here

    【讨论】:

      【解决方案2】:

      我引用the man page

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

      即,exec 不返回。你想达到什么目的,或者说系统有什么问题?

      【讨论】:

      • 可以在 OP 最近的问题中找到您问题答案的线索。例如,setrlimit()
      猜你喜欢
      • 2021-02-24
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 2015-12-26
      • 2019-08-04
      • 1970-01-01
      • 2010-09-12
      • 2019-01-02
      相关资源
      最近更新 更多