Linux信號使用及自定義信號


linux自定義信號:https://www.cnblogs.com/bigben0123/p/3186661.html

linux信號、值及解釋:https://blog.csdn.net/luotuo44/article/details/16799607

信號處理:https://wiki.jikexueyuan.com/project/cplusplus/signal-handling.html

沒什么kill -l沒有32 33 http://www.kbase101.com/question/30858.html

 

__SIGRTMIN 和 SIGRTMIN:

兩個是不同的,SIGRTMIN在 __SIGRTMIN 基礎上+2

 

執行 kill -l  會列出了下信號

 1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
 6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX

注意沒有32 33

這是因為NPTL。由於它是GNU C庫的一部分,幾乎每個現代Linux發行版都不再使用前兩個實時信號了。 NPTL是POSIX Threads的實現。 NPTL內部使用前兩個實時信號。

信號手冊頁的這一部分非常有趣:

Linux內核支持32種不同的實時信號,
  編號為33到64.但是,glibc POSIX線程實現
  內部使用兩個(對於NPTL)或三個(對於LinuxThreads)實時
  信號(參見pthreads(7)),並適當調整SIGRTMIN的值
  (到34或35)。因為可用的實時信號范圍不同
  根據glibc線程實現(和這種變化
  可以在運行時根據可用的內核和glibc)發生,
  實際上,實時信號的范圍因UNIX系統而異,
  程序絕不應該使用硬編碼來引用實時信號
  數字,但應始終使用的是實時信號
  符號SIGRTMIN + n,並包括適當的(運行時)檢查
  SIGRTMIN + n不超過SIGRTMAX。

檢查了glibc的源代碼;參見第22行。 __SIGRTMIN增加了+2,因此前兩個實時信號被排除在實時信號范圍之外。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM