我在c中有以下代码:
execlp("ReturnValue.c");
ReturnValue.c应该返回一个介于0-3之间的整数,并且由于execlp在程序成功运行时不会返回任何内容,我如何获得该程序的返回值?
答案 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