考慮以下代碼片段:如何退出子進程 - _exit()與出口
pid_t cpid = fork();
if (cpid == -1) {
perror("fork");
exit(EXIT_FAILURE);
}
if (cpid == 0) { // in child
execvp(argv[1], argv + 1);
perror("execvp");
_exit(EXIT_FAILURE);
}
// in parent
如果execvp收益應如何我退出的子進程?我應該使用exit()還是_exit()?
+1您希望失敗的子進程安靜地退出,就好像它從未創建過一樣。 – 2010-02-24 21:49:58
既然舊C標準允許鏈接器解決大小寫不敏感_Exit()不能是標準庫函數,因爲它會與舊的_exit()衝突。抱歉。 – Joshua 2010-02-24 21:50:15
恰恰相反。 _Exit(3)是一個標準C庫(ISO C99)。 _exit(2)是POSIX.1系統調用,不是C標準。 – 2010-02-25 01:06:48