Signal(SIGINT, sig_int)

 #include   <signal.h>   
    
                typedef   void   (*sighandler_t)(int);   
    
                sighandler_t   signal(int   signum,   sighandler_t   handler);   
    
    
  DESCRIPTION   
                The     signal()     system   call   installs   a   new   signal   handler   for   the   signal   
                with   number   signum.     The   signal   handler   is   set   to   sighandler   which     may   
                be   a   user   specified   function,   or   either   SIG_IGN   or   SIG_DFL.   
    
                Upon     arrival   of   a   signal   with   number   signum   the   following   happens.     If   
                the   corresponding   handler     is     set     to     SIG_IGN,     then     the     signal     is   
                ignored.       If     the     handler     is   set   to   SIG_DFL,   then   the   default   action   
                associated   to   the   signal   (see   signal(7))   occurs.     Finally,   if   the     han-   
                dler     is     set   to   a   function   sighandler   then   first   either   the   handler   is   
                reset   to   SIG_DFL   or   an   implementation-dependent   blocking   of   the     signal   
                is   performed   and   next   sighandler   is   called   with   argument   signum.   
    
                Using     a     signal     handler   function   for   a   signal   is   called   "catching   the   
                signal".     The   signals   SIGKILL   and   SIGSTOP   cannot   be   caught   or     ignored.   
    
    
  RETURN   VALUE   
                The   signal()   function   returns   the   previous   value   of   the   signal   handler,   
                or   SIG_ERR   on   error.   
    
    
  PORTABILITY   
                The   original   Unix   signal()   would   reset   the   handler   to   SIG_DFL,   and   Sys-   
                tem     V     (and   the   Linux   kernel   and   libc4,5)   does   the   same.     On   the   other   
                hand,   BSD   does   not   reset   the   handler,   but   blocks   new   instances   of     this   
                signal   from   occurring   during   a   call   of   the   handler.     The   glibc2   library   
                follows   the   BSD   behaviour.   
    
                If   one   on   a   libc5   system   includes   <bsd/signal.h>   instead   of     <signal.h>   
                then     signal   is   redefined   as   __bsd_signal   and   signal   has   the   BSD   seman-   
                tics.   This   is   not   recommended.   
    
                If   one   on   a     glibc2     system     defines     a     feature     test     macro     such     as   
                _XOPEN_SOURCE     or     uses     a     separate     sysv_signal   function,   one   obtains   
                classical   behaviour.   This   is   not   recommended.   
    
                Trying   to   change   the   semantics   of   this   call   using   defines   and     includes   
                is     not     a     good   idea.   It   is   better   to   avoid   signal   altogether,   and   use   
                sigaction(2)   instead.   
    
    
  NOTES   
                According   to   POSIX,   the   behaviour   of   a   process   is     undefined     after     it   
                ignores     a     SIGFPE,   SIGILL,   or   SIGSEGV   signal   that   was   not   generated   by  

SIGINT是信号名称或代码(Ctrl-C会产生这个信号)   
  sig_int是你的一段程序   
  singal(SIGINT,   sig_int)就是当键入Ctrl-C的时候,当前执行程序调用function   sig_int(),   sig_int执行完后,再返回原来执行的地方接着往下走

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值