📄 signal.c
字号:
/* SYSVR4 and ANSI compatible signal(2). */#include <lib.h>#define sigaction _sigaction#define sigemptyset _sigemptyset#include <signal.h>PUBLIC sighandler_t signal(sig, disp)int sig; /* signal number */sighandler_t disp; /* signal handler, or SIG_DFL, or SIG_IGN */{ struct sigaction sa, osa; if (sig <= 0 || sig > _NSIG || sig == SIGKILL) { errno = EINVAL; return(SIG_ERR); } sigemptyset(&sa.sa_mask);#ifdef WANT_UNRELIABLE_SIGNALS /* Allow the signal being handled to interrupt the signal handler. */ sa.sa_flags = SA_NODEFER; /* When signal is caught, reset signal handler to SIG_DFL for all but * SIGILL and SIGTRAP. */ if (sig != SIGILL && sig != SIGTRAP) sa.sa_flags |= SA_RESETHAND;#else sa.sa_flags = 0;#endif sa.sa_handler = disp; if (sigaction(sig, &sa, &osa) < 0) return(SIG_ERR); return(osa.sa_handler);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -