1
我有一個任務,我必須創建一個能夠執行很多事情(包括作業控制)的迷你shell。我設法使用fork和execvp創建新的作業。但我也想獲得由execvp運行的程序的退出代碼。從我從其他職位擡頭看,我可以通過使用if(WIFEXITED(status))
來做到這一點。c - 在後臺運行的程序的退出狀態
但是如果用戶在shell中輸入'&'進程名稱,我們還需要在後臺運行進程。所以當子程序在後臺完成時等待父進程等待是沒有意義的。是否有任何可以設置的中斷來通知父進程子進程已經結束?然後我可以使用if(WIFEXITED(status))
語句來獲取退出代碼。
例
sleep 100 &
將在後臺運行,同時,我可以在前臺同時執行其他外殼命令。
有許多開放源代碼的shell實現,你看過它們中的任何一個嗎? FOSS不是關於價格,而是關於使用其他代碼。即使用於研究 –