linux 下的signal种类

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

 

地址访问越界一般会出现这个问题,SIGSEGV 

1 首先,崩溃不一定是内存越界 
2 访问越界是被OS捕捉并处理的,会发SIGSEGV信号,这个信号不能被应用程序处理

signal 11 可以被处理,但是信号不能被程序丢弃。 
换句话说就是系统会给程序一个喊“哎呀”的机会,但是这个程序仍然会被杀掉。

 

 

可以不退出的,我记得有个库,专门处理SIGSEGV,出错后jump到某个地方去

 

 

你可能感兴趣的:(Signal)