我在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源文件! –