|  | ||||||||||||||||||||||||||||
| 信號發送函數kill()和raise() | ||||||||||||||||||||||||||||
| 本文關鍵字: 信號發送函數,kill(),raise()   kill()函數(shu)同(tong)讀者熟知的(de)kill系統(tong)命(ming)令(ling)一樣,可以(yi)發(fa)送信號(hao)給進(jin)程(cheng)(cheng)或進(jin)程(cheng)(cheng)組(實(shi)際上,kill系統(tong)命(ming)令(ling)只是(shi)kill()函數(shu)的(de)一個(ge)用戶接口)。這里(li)需要注意的(de)是(shi),它不僅(jin)可以(yi)中(zhong)止進(jin)程(cheng)(cheng)(實(shi)際上發(fa)出SIGKILL信號(hao)),也可以(yi)向進(jin)程(cheng)(cheng)發(fa)送其他信號(hao)。  與kill()函(han)數不同的是,raise()函(han)數允許進程向自身發送信號。 表(biao)1列出了kill()函(han)數的(de)語法(fa)要點。 表(biao)1 kill()函數語(yu)法要點(dian) 
    表2列出(chu)了raise()函數的語法要(yao)點。 表(biao)2 raise()函(han)數語法(fa)要點 
 下面的示例首先使用fork()創(chuang)建(jian)了一個(ge)子(zi)(zi)進(jin)(jin)程(cheng)(cheng)(cheng),接著為了保證子(zi)(zi)進(jin)(jin)程(cheng)(cheng)(cheng)不在(zai)父進(jin)(jin)程(cheng)(cheng)(cheng)調用kill()之前退出,在(zai)子(zi)(zi)進(jin)(jin)程(cheng)(cheng)(cheng)中(zhong)(zhong)使(shi)用raise()函數向(xiang)自身發(fa)送SIGSTOP信(xin)號,使(shi)子(zi)(zi)進(jin)(jin)程(cheng)(cheng)(cheng)暫停。接下來(lai)在(zai)父進(jin)(jin)程(cheng)(cheng)(cheng)中(zhong)(zhong)調用kill()向(xiang)子(zi)(zi)進(jin)(jin)程(cheng)(cheng)(cheng)發(fa)送信(xin)號,在(zai)該(gai)示例(li)中(zhong)(zhong)使(shi)用的是SIGKILL,讀者(zhe)可以使(shi)用其他(ta)信(xin)號進(jin)(jin)行練(lian)習。     /* kill_raise.c */ 該(gai)程序運行結果如(ru)下:     $ ./kill_raise 本文選自華清遠見嵌入式培訓教材《從實踐中學嵌入式Linux應用程序開發》 熱(re)點鏈接:  
         1、Linux下的信號機制 | ||||||||||||||||||||||||||||