p8-5.c

来自「SUN Solaris8平台下进程间通信」· C语言 代码 · 共 30 行

C
30
字号
#include <signal.h>#include <errno.h>void (*signal(          int sig,          void (*handler) (int))) (int){    struct sigaction act, oact;    /* 检查信号*/    if (handler == SIG_ERR || sig < 1 || sig >= NSIG){         errno = EINVAL;        return SIG_ERR;    }    act.sa_handler = handler;    if (sigemptyset (&act.sa_mask) < 0)        return SIG_ERR;    act.sa_flags = 0;    if(sig == SIGALRM){#ifdef SA_INTERRUPT        act.sa_flags |= SA_INTERRUPT; /* SunOS 4.x */#endif    } else {# ifdef SA_RESTART        act.sa_flags |= SA_RESTART;   /* SVR4,4.4BSD */#endif    }    if (sigaction(sig,&act,&oact) < 0)        return (SIG_ERR);    return(oact.sa_handler);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?