一 點睛
#include#includeint kill(pid_t pid,int sig);
函式說明
kill()可以用來送引數sig指定的訊號給引數pid指定的程序。
引數pid有幾種情況:
引數sig表示準備傳送的訊號**,如果其值為零,則沒有任何訊號發出,但是系統會執行錯誤檢查,通常會利用sig值為0來檢驗某個程序是否仍在執行。
返回值 執行成功則返回0,如果有錯誤則返回-1。此時errno可以得到錯誤碼。
錯誤**說明
二 **
#include #include #include #include #include #include int main(void)
else if (0 == childpid)
else
else}}
exit(exit_success);
}
三 編譯執行
[root@localhost test]# g++ -o test test.cpp
[root@localhost test]# ./test
1007 killed
四 說明
**首先建立了乙個子程序,然後讓子程序休眠一會兒,在父程序中傳送sigkill訊號給子程序,讓其退出。
waitpid(等待子程序中斷或結束)
標頭檔案
#include#include
定義函式
pid_t waitpid(pid_t pid,int * status,int options);
函式說明
waitpid()會暫時停止目前程序的執行,直到有訊號來到或子程序結束。
如果在呼叫wait()時子程序已經結束,則wait()會立即返回子程序結束狀態值。子程序的結束狀態值會由引數status返回,而子程序的程序識別碼也會一塊返回。
如果不在意結束狀態值,則引數status可以設成null。
引數pid為欲等待的子程序識別碼,其他數值意義如下:
引數option可以為0 或下面的or組合。
子程序的結束狀態返回後存於status,下面有幾個巨集可判別結束情況:
返回值
如果執行成功則返回子程序識別碼(pid),如果有錯誤發生則返回-1。失敗原因存於errno中。
程序間通訊之使用kill傳送訊號
標頭檔案 include include 定義函式 int kill pid t pid,int sig 說明 系統呼叫kill 用來送引數sig 指定的訊號給引數pid 指定的程序或它的程序組。引數pid 有幾種情況 1 pid 0 將訊號傳給程序識別碼為pid 的程序 2 pid 0 將訊號傳給...
程序間通訊之kill傳送訊號
c語言 利用kill函式實現乙個程序向另乙個程序傳送訊號 1.用於向任何程序組或程序傳送訊號 include signal.h intkill pid t pid,intsig 2.引數 pid 可能選擇有以下四種 1.pid大於零時,pid是訊號欲送往的程序的標識。2.pid等於零時,訊號將送往所...
UNIX再學習 傳送訊號
傳送訊號的方式有幾種 sigint 2 ctrl c 中斷符 sigquit 3 ctrl 退出符 sigtstp 20 ctrl z 停止符 sigill 4 程序試圖執行非法指令 sigbus 7 硬體或對齊錯誤 sigfpe 8 算術異常 sigsegv 11 無法記憶體訪問 sigpipe ...