-1
我想知道命令是否成功運行而沒有錯誤。我試圖:C - execve()在命令錯誤時不返回-1
if (execve(buf, pl->argv, environ) != -1) {
perror(buf);
laststatus = 1;
}
在例如「lss」的情況下,我會回到-1。但是諸如「ls fs」(無效)的情況下,ls會打印出錯誤,但execve會返回成功。
當傳遞給execve的命令分別執行成功或失敗時,如何將laststatus
設置爲0或1。
附加:
buf
是命令名稱( 'LS' 針對這種情況)
pl->args
是arguments
你將不得不爲'父'中的孩子'wait()'。這樣你可以檢查孩子的返回碼。 – EOF
@EOF不是'execve()'不應該返回? – Zermingore
@ J.P.Quenord-Zermingore:*函數*不返回(如果成功)。 *進程*最終會終止,並將退出代碼返回給其父代。 – EOF