我在C以下代码:如何在execlp()之后找到程序的返回值?
execlp("ReturnValue.c");
ReturnValue.c应该返回一个整数0-3之间,而且由于程序成功运行时execlp不会返回任何东西,我怎么能得到该程序的返回值?
我在C以下代码:如何在execlp()之后找到程序的返回值?
execlp("ReturnValue.c");
ReturnValue.c应该返回一个整数0-3之间,而且由于程序成功运行时execlp不会返回任何东西,我怎么能得到该程序的返回值?
你可以做这样的事情:
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
Havind一个*二进制可执行文件*名为'ReturnValue.c'(以'.c'扩展名)是口感不佳。 '.c'扩展名应该是C源文件! –