簡體   English   中英

暫停子進程並從父進程恢復

[英]pausing a child process and resuming it from the parent

除了理論之外,幾乎不知道信號是如何工作的。 我正在編寫一個程序,需要子進程啟動,暫停,等待父進程發送信號,然后父進程運行它的代碼部分,發送信號,等待子進程完成,然后孩子繼續並繼續過去 pause(); 並完成,以便父級可以繼續,以便它也可以完成。 我嘗試過 kill(c_pid, SIGCONT),但程序只是掛起,因為子進程永遠不會取消暫停,並且父進程正在等待子進程完成。 我是否需要放置一個 void 函數來檢查信號,在 pause() 之前寫一個人; ?

子進程永遠不會取消暫停,父進程正在等待子進程完成。 我是否需要放置一個 void 函數來檢查信號,在 pause() 之前寫一個人; ?

根據其文檔, pause()

導致調用進程(或線程)休眠,直到發出終止進程或導致調用信號捕獲 function 的信號

(強調補充。)

所以是的,如果您希望孩子從pause()中恢復,那么您必須確保接收到父母的信號會導致調用捕獲信號的 function (又名“信號處理程序”)。 這需要在pause()之前通過signal()或(更好的) sigaction() function 為該信號注冊這樣的處理程序。 信號處理程序的簽名將是void some_name(int) ,所以可能這就是您所想的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM