簡體   English   中英

如果對`kill`的調用導致為調用過程生成信號並且該信號未被阻塞,會發生什么?

[英]What happens if the call to `kill` causes the signal to be generated for the calling process and the signal is not blocked?

Unix環境高級編程說:

 #include <signal.h> int kill(pid_t pid, int signo); 

...

如果kill的調用導致為調用進程生成信號,並且該信號未阻塞 ,則在kill返回之前, signo或其他未決的未阻塞信號會傳遞到該進程 (線程出現其他條件;有關更多信息,請參見第12.8節。)

我很難理解上一段。

案件描述是什么意思

  • kill的調用導致為調用過程生成信號”

  • “信號未阻塞”?

結果是什么意思?

有人會改寫和/或舉一些例子嗎?

這一切都說明,如果進程正在使用kill向自身發送信號,則該信號將在kill返回之前被傳遞。 有一些警告。

kill的用途之一是向程序發送s信號,告知該程序結束-名稱來自何處。 但是,如今,您還可以發送其他幾種信號來發送程序。

基本上,當一個程序使用另一個程序的pid(進程ID)調用kill時,它正在告訴內核將該信號傳遞給另一個程序。

這並不總是意味着信號將被發送到另一個程序。 相反,如果調用kill的程序運行的用戶與發出信號的程序不同,則內核將不會傳遞信號,而是將其阻止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM