首页 > 代码库 > Linux C 程序 信号及信号的处理(19)

Linux C 程序 信号及信号的处理(19)

信号及信号的处理

1.Linux信号的介绍
  信号是一种软件中断。Linux系统中根据POSIX标准扩展的信号机制。
  1.信号来源
      1.硬件方式
          1.当用户按下某个键,产生信号,如crtl+c
          2.硬件异常产生信号,除数为0,无效的存储访问等
      2.软件方式
          1.用户调用kill命令向进程发送任意信号
          2.进程调用kill或sigqueue函数发送信号
          3.检测某种软件条件已经具备发出信号条件,如alarm设置的定时器
     2.信号的种类
         linux 下命令 kill -l 列出所支持的全部信号
[fubin@localhost C]$ 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    

信号的值在signal.h里定义

   1.可靠信号和不可靠信号
   SIGHUP(1号) ----SIGSYS(31号) 继承自UNIX,是不可靠信号
   Liunx根据POSIX标准定义的:SIGRTMIN(33号)------SIGRTMAX(64号)  可靠信号,也叫做实时信号
   Linux没有16号和32号信号
   
   信号的可靠性指:信号是否会丢失,或者说信号是否支持排队。
   信号产生和递送有一个时间间隔,称作信号未决。
   
   信号会递送多次,可靠信号
   只递送一次,不可靠信号
   
   
   2.信号优先级
   编号越小先被递送,不可靠信号先被递送
   
   
 3.进程对信号的响应
  1.捕捉信号
  2.忽略信号
  3.按系统默认方式处理 :通常的默认操作是终止进程
 
 
2.信号处理
 1.信号的捕捉和处理
 2.信号处理函数的返回
 3.信号的发送
 4.信号的屏蔽
 
    
 
 
  

Linux C 程序 信号及信号的处理(19)