10 9 訊號 kill和raise函式

2021-05-23 03:13:44 字數 474 閱讀 8136

kill函式將訊號傳送給程序或程序組。raise函式則允許程序向自身傳送訊號。

返回值:成功返回0,出錯返回-1

呼叫「raise(signo);」等價於呼叫"kill(getpid(),signo)".kill的pid引數有4種不同的情況:

上面曾提及,程序將訊號傳送個其他程序需要許可權。超級使用者可將訊號傳送給任一程序。對於非超級使用者,其基本規則是傳送者的實際或有效使用者id必須等於接收者的實際或有效使用者id。在對許可權進行測試時也有乙個特例:如果被傳送的訊號是sigcont,則程序可將它傳送給屬於同一會話的任何其他程序。

posix.1將編號為0的訊號定義為空訊號。如果signo引數是0,則kill仍執行正常的錯誤檢查,但不傳送訊號。這常被用來確定乙個特定程序是否仍舊存在。對於程序是否存在的這種測試不是原子操作。

如果呼叫kill為呼叫程序產生訊號,而且此訊號是不被阻塞的,那麼在kill返回之前,就會將signo或者某個其他未決的非阻塞訊號傳送至該程序。

程序間操作 raise 與 kill

首先程序間程序間操作有raise和kill兩種函式。他們的函式原型分別是 int kill pid t pid,int signal int raise int signal 成功返回0,失敗返回 1 kill和raise是用來傳送訊號的 kill把訊號傳送給程序或程序組 raise把訊號傳送給 程...

04訊號學習之kill函式

kil函式和kill命令完全一樣,只不過kill命令在命令列操作,kill函式再程式操作。int kill pid t pid,int sig 功能 給指定程序傳送訊號去執行某個動作,注意不一樣殺死,別被字面意思kill誤解。成功 0 失敗 1 可能是pid,訊號值非法,普通使用者殺init程序等權...

Linux的kill命令與訊號控制

現在,回到sighup的話題 sighup的發音是 sig hup 是signal hangup的縮寫,含義是 中止訊號 你如何傳送乙個sighup訊號呢?這裡有幾種方式 kill hup pid killall hup process name kill 1 pid killall 1 proce...