C 使用kill傳送訊號終止目標程序

2021-09-14 05:18:25 字數 1286 閱讀 6693

一 點睛

#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 ...