【c語言】利用kill函式實現乙個程序向另乙個程序傳送訊號
1.用於向任何程序組或程序傳送訊號
#include
<
signal.h
>
intkill(pid_t pid,
intsig);
2. 引數:
pid:可能選擇有以下四種
1. pid大於零時,pid是訊號欲送往的程序的標識。
2. pid等於零時,訊號將送往所有與呼叫kill()的那個程序屬同乙個組的程序。
3. pid等於-1時,訊號將送往所有呼叫程序有權給其傳送訊號的程序,除了程序1(init)。
4. pid小於-1時,訊號將送往以-pid為組標識的程序。
sig:準備傳送的訊號**,假如其值為零則沒有任何訊號送出,但是系統會執行錯誤檢查,通常會利用sig值為零來檢驗某個程序是否仍在執行。
返回值說明: 成功執行時,返回0;失敗返回-1
1. kill_process_01.c 實現等待接收訊號
[cpp]view plain
copy
#include
#include
#include
#include
char
acprocessname[32];
void
sig_handler(
intsigno);
intmain(
intargc,
char
**argv)
for(; ;);
//有時間讓我們傳送訊號
return
0;
} void
sig_handler(
intsigno)
2. kill_process_02.c 實現向指定程序號傳送訊號
[cpp]view plain
copy
#include
#include
#include
#include
char
acprocessname[32];
intmain(
intargc,
char
**argv)
pid = atoi(argv[1]);
kill(pid, sigusr1);
printf("[%s] pid = %d\n"
, acprocessname, pid);
return
0;
}
3. 執行結果
[python]view plain
copy
1》 執行./kill_process_01 &
[./kill_process_01] main is
waiting
fora signal
2》 檢視kill_process_01程序號為
2853
3》 執行./kill_process_02
2853
[./kill_process_02] pid = 2853
[./kill_process_01] catch the signal sigusr1 10
程序間通訊之使用kill傳送訊號
標頭檔案 include include 定義函式 int kill pid t pid,int sig 說明 系統呼叫kill 用來送引數sig 指定的訊號給引數pid 指定的程序或它的程序組。引數pid 有幾種情況 1 pid 0 將訊號傳給程序識別碼為pid 的程序 2 pid 0 將訊號傳給...
C 使用kill傳送訊號終止目標程序
一 點睛 include includeint kill pid t pid,int sig 函式說明 kill 可以用來送引數sig指定的訊號給引數pid指定的程序。引數pid有幾種情況 引數sig表示準備傳送的訊號 如果其值為零,則沒有任何訊號發出,但是系統會執行錯誤檢查,通常會利用sig值為0...
父程序與子程序間相互傳送訊號
最近想要實現父子程序間的通訊,兩個程序間能 軟中斷 也就是使用signal函式將程序與handler函式繫結。其中的難點在於如何在父程序中獲取子程序的pid,由於實際的程式中,父程序有唯一的子程序,所以我採用的方法是 直接將父程序的 pid 1 也就獲取了子程序的pid,有一絲奇技淫巧的感覺,but...