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 会列出了下信号
) SIGHUP ) SIGINT ) SIGQUIT ) SIGILL ) SIGTRAP
) SIGABRT ) SIGBUS ) SIGFPE ) SIGKILL ) SIGUSR1
) SIGSEGV ) SIGUSR2 ) SIGPIPE ) SIGALRM ) SIGTERM
) SIGSTKFLT ) SIGCHLD ) SIGCONT ) SIGSTOP ) SIGTSTP
) SIGTTIN ) SIGTTOU ) SIGURG ) SIGXCPU ) SIGXFSZ
) SIGVTALRM ) SIGPROF ) SIGWINCH ) SIGIO ) SIGPWR
) SIGSYS ) SIGRTMIN ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) 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,因此前两个实时信号被排除在实时信号范围之外。