반응형

 

Sigfunc *signal(int signo, Sigfunc *func)
{
    struct sigaction    act, oact;
  
    act.sa_handler = func;
    sigemptyset(&act.sa_mask);
    act.sa_flags = 0;
  
    if (signo == SIGALRM) {
#ifdef SA_INTERRUPT
        act.sa_flags |= SA_INTERRUPT;
#endif
    }
    else {
#ifdef SA_RESTART
        act.sa_flags |= SA_RESTART;
#endif
    }
  
    if (sigaction(signo, &act, &oact) < 0)
        return(SIG_ERR);
    return (oact.sa_handler);
}

 

반응형
Posted by 공간사랑
,