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,因此前两个实时信号被排除在实时信号范围之外。