sighandler.c
来自「一个C语言写的快速贝叶斯垃圾邮件过滤工具」· C语言 代码 · 共 60 行
C
60 行
/* $Id: sighandler.c,v 1.7 2006/07/03 00:21:29 relson Exp $ *//*****************************************************************************NAME: sighandler.c -- signal handlerAUTHOR: David Relson <relson@osagesoftware.com>******************************************************************************/#include "common.h"#include <signal.h>#include <stdlib.h>#include <errno.h>#include "sighandler.h"#include "wordlists.h"/* Global Definitions */bool fDie = false;/* Function Definitions */static void mysignal(int sig, void (*hdl)(int)) {#ifdef SA_RESTART struct sigaction sa; memset( &sa, 0, sizeof(sa)); sa.sa_handler = hdl; sigemptyset(&sa.sa_mask); sa.sa_flags = SA_RESTART; if (sigaction(sig, &sa, NULL)) { fprintf(stderr, "Cannot set signal %d handler to %p: %s\n", sig, hdl, strerror(errno)); exit(EX_ERROR); }#endif}static void mysigdie(int sig){ (void) sig; /* quiet compiler warning */ if (!fDie) fDie = true; else exit(EX_ERROR);}void signal_setup(void){ mysignal(SIGINT, mysigdie); /* 2 */ mysignal(SIGPIPE, SIG_IGN); /* 1 */ mysignal(SIGTERM, mysigdie); /* 15 */}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?