前面我們介紹了 ipc中的訊號機制(signal),今天來介紹 可以產生訊號的函式用法
一.kill
kill函式:給指定程序傳送指定訊號(不一定殺死)
int kll(pid_ t pid, int sig);成功: 0;失敗: -1(id 非法,訊號非法,普通使用者殺init程序等權級問題),設定errno
sig:不推薦直接使用數字,應使用巨集名,因為不同作業系統訊號編號可能不同,但名稱一致。
pid>0:傳送信 號給指定的程序。
pid=0:傳送訊號給 與呼叫kill函式程序屬於同一程序組的所有程序。
pid<0:取|pid|【絕對值】發給對 應程序組。
pid=-1:傳送給程序有許可權傳送的系統中所有程序。
程序組:每個程序都屬於乙個程序組,程序組是乙個或多個程序集合,他們相互關聯,共同完成乙個實體任務,每個程序組都有-乙個程序組長,預設程序組id與程序組長id相同。
許可權保護: super 使用者(root)可以傳送信
Linux 環境程式設計 訊號列表
在 linux 下,每個訊號的名字都以字元 sig 開頭,每個訊號和乙個數字編碼相對應,在標頭檔案 signum.h 中,這些訊號都被定義為正整數。訊號名定義路徑 usr include i386 linux gnu bits signum.h 要想檢視這些訊號和編碼的對應關係,可使用命令 kill...
Linux系統程式設計 訊號的產生
ctrl c 傳送2號訊號sigint,將中止當前程序。sigint的 int 是interrupt的意思 ctrl z 傳送20號訊號sigtstp,暫停 停止當前程序。sigtstp中的 t 是terminal的意思。程序收到此訊號後,將由當前轉入後台,可用ps aux找到它。比如說,我們使用v...
linux之訊號產生
使用者在終端按下某些鍵時,終端驅動程式會傳送訊號給前台程序,例如ctrl c產生sigint信 號,ctrl 產生sigquit訊號,ctrl z產生sigtstp訊號。sigint的預設處理動作是終止程序,sigquit的預設處理動作是終止程序並且core dump,首先解釋什麼是core dum...