当前位置:   article > 正文

linux下自定义信号类型,Linux信号使用及自定义信号

linux如何调整信号格式

__SIGRTMIN 和 SIGRTMIN:

两个是不同的,SIGRTMIN在 __SIGRTMIN 基础上+2

执行 kill -l  会列出了下信号

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) 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,因此前两个实时信号被排除在实时信号范围之外。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/458606
推荐阅读
相关标签
  

闽ICP备14008679号