1樓:匿名使用者
測試了一下,三個程序都會收到sigint訊號。
原程式中,child1, child2都收到sigint訊號,呼叫stop(), 之後被喚醒,列印"child process ... is killed by parent!",事實上kill這兩個child的不是parent,是它們自己的sigint。
放到①處,child1收到sigint訊號,預設的行為是把自己殺了,當然也來不及列印任何東西了。child2收到sigint訊號,打斷waiting(),列印"child process 2 ...",然後退出。
殺死它的也不是sigusr2訊號。
放到②處,child1, child2收到sigint訊號,預設的行為是立即把自己殺了,也來不及列印任何東西了。
測試方法:
// 列印誰執行、被什麼訊號打斷
static void stop(int signal)
// 在parent程序中,列印各程序id
printf("parent %d, child1 %d, child2 %d\n",getpid(),p1,p2);
如果讓parent成為殺死child的**,可以在child1,child2中加入:
signal(sigint, keep_me_alive);
// 不理睬sigint訊號
static void keep_me_alive(int signal)
這時列印結果就一樣了
請參考,希望能幫到你。
2樓:
試試下面這些語句:
#include
int main()
程式會把本應輸出到螢幕的
hello world!
輸出到檔案out.txt中。
不知道樓主說的偽終端是不是這個意思。
祝你好運!
3樓:匿名使用者
printf根據開啟檔案的檔案指標不同可以輸出到不同的終端檔案指標為stdout 對應到標準輸出
檔案指標為stderr 對應到錯誤輸出
也可以開啟/dev/ttyn指定的終端,開啟/dev/ptyn指定的偽終端
甚至可以可以指定/dev/null,/dev/zero,不進行輸出
linu怎麼獲取root許可權,linux怎麼獲取root許可權
1 獲取root許可權linux系統都是一樣的,這裡以ubuntu為例,用組合鍵ctrl alt t開啟乙個新的終端程式 2 輸入 版sudo passwd root 設定root密碼 權首先輸入使用者登陸密碼,然後設定新的root密碼 3 輸入su按enter鍵,輸入前面設定好的root密碼,獲取...
linu怎麼設定,linux 怎麼設定IP
linux的ip設定可以到檔案裡設定也可以使用命令設定1 檔案設定,cd etc sysconfig network scripts 之後編輯網絡卡檔案就行。vi ifcfg ethn n就是第幾塊網絡卡,可以用ifconfig檢視你有幾塊網絡卡,以及網絡卡名。2 使用命令 ifconfig eth...
linu如何重啟,linux 如何重啟apache
樓上的都可以,不過我個人用 httpd k restart 關鍵是找到httpd這個檔案。root test bin httpd restart bash httpd command not found 明顯是bash在path所指的目錄下找不到httpd,試試找到它,然後用絕對路徑。比如我們這裡是...