0
int spawn(char* program, char** args) {
pid_t child_pid;
child_pid = fork();
if(child_pid > 0) {/
wait(NULL);
return (int)child_pid;
}
else {
if(execvp(program, args) == -1){
exit(EXIT_FAILURE);
}
return (int)child_pid;
}
}
我知道這段代碼有點混亂,但請耐心等待:我試圖創建自己的shell。這是啓動一個新的子進程並執行代碼的函數。但是,我輸入字符串時無法返回錯誤。當execvp找不到程序時返回錯誤
例如,如果我輸入「heyman」,我只是想回到'heyman',而我想得到某種錯誤('heyman'不是命令)。
我希望退出(EXIT_FAILURE)會這樣做,但它沒有。希望如果有人能幫我在這裏
工作。你能告訴我你是如何知道這個或你從哪裏找到的?我想知道一個我可以用於linux編程的源代碼,而不是經常問問題 – qaispak
我在哪裏學習了'perror()'?我不記得,我已經瞭解了20多年。任何體面的Unix編程教科書都應該有它。 – Barmar