Pau*_*omé 6 signals real-time glibc linux-kernel
检查kill -l命令的输出
$ 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
Run Code Online (Sandbox Code Playgroud)
可以注意到 SIGRTMIN 的整数值是 34,而不是 32。
... 31) SIGSYS 34) SIGRTMIN ...
为什么?
$ uname -r
4.19.0-8-amd64
$ ls -l /lib/x86_64-linux-gnu/libc-2.28.so
-rwxr-xr-x 1 root root 1.8M May 1 2019 /lib/x86_64-linux-gnu/libc-2.28.so*
Run Code Online (Sandbox Code Playgroud)
这个问题的答案可以在signal(7)手册页的Real-time Signals部分中找到
实时信号
Linux 支持最初在 POSIX.1b 实时扩展中定义的实时信号(现在包含在 POSIX.1-2001 中)。支持的实时信号范围由宏
SIGRTMIN和定义SIGRTMAX。POSIX.1-2001 要求实现至少支持POSIX_RTSIG_MAX(8)实时信号。Linux 内核支持 32 种不同的实时信号,编号
33为64. 但是,glibcPOSIX 线程实现在内部使用两个(对于 NPTL)或三个(对于 LinuxThreads)实时信号(请参阅 参考资料pthreads(7)),并SIGRTMIN适当地调整 的值(to34或35)。
| 归档时间: |
|
| 查看次数: |
4821 次 |
| 最近记录: |