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樓:匿名使用者
sigaction函式是posix下用來傳遞複雜的訊號引數,signal是這個的linux簡化版本
原型:sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)
詳見linux.die.net/man/2/sigaction,或者rtfm
linux c signal函式的一點疑惑。
3樓:不屑寵兒
if(signal(sigtstp, sig_ign) == sig_dfl)
signal(sigtstp, sig_tstp);
參考apue就知道,這樣的寫法其實挺常見的,這是signal函式的一個問題,必須在設定的時候才能知道當前的狀態。這個函式的意思是不是用ctr + z預設方式,而使用自己的處理函式。而只有在job-control的時候,這個訊號才是sig_dfl,也就是說只有在這個情況你才需要控制這個訊號。
linux環境下使用signal函式進行程序間通訊的問題
4樓:匿名使用者
測試了一下,三個程序都會收到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)
這時列印結果就一樣了
linux 環境下的c語言, 關於 kill 傳送訊號和 signal() 函式, 具體問題在以下**的註釋處
5樓:匿名使用者
pause()會令目前的程序暫停(進入睡眠狀態), 直到被訊號(signal)所中斷。
當50訊號觸動了,pause將退出睡眠狀態,執行printf和return
對數函式的問題,對數函式問題
1.過定點 2,1 形如y logax a 0切a 1 的對數函式形式恆過定點 1,0 則有y loga 2x 3 過 1,0 而y loga 2x 3 1相對y loga 2x 3 在座標軸上下移一個單位 即過 2,1 x g x 的公共定義域為 1,1 f x g x loga 1 x loga...
python函式定義問題,python函式定義的語法問題
def world def is sort for define not del def def world print some python函式定義的語法問題 此類 出現於字尾為pyi的註釋檔案中,用於提示函式的引數和返回值例如def keygen username str str 表示函式ke...
EXCEL函式問題
如果你是excel2007及以上版本,在e2輸入 a2 1 首次借用 yyyy m d 如果是03版本,則在e2輸入 a2 1 首次借用 a2 1 yyyy m d 向下複製即可。謝謝採納哦,親 e2 if countifs a 2 a2,a2,b 2 b2,b2 1,max a1 a 2 a2 b...