如何在execlp()之后找到程序的返回值?

时间:2014-03-03 03:09:40

标签: c linux exec

我在c中有以下代码:

execlp("ReturnValue.c");

ReturnValue.c应该返回一个介于0-3之间的整数,并且由于execlp在程序成功运行时不会返回任何内容,我如何获得该程序的返回值?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

pid = fork();

if (pid == 0) {
    execlp("ReturnValue.c", ...);
}
else if (pid > 0) {
    waitpid(pid, &status, ...);

    /* extract the return status */
    WEXITSTATUS(status);
}
else { /* fork() error */ }

请参阅waitpid(3)man 3 waitpid