sigtest.c
来自「linux下的进程通讯机制的代码例子。消息队列以及共享内存。」· C语言 代码 · 共 49 行
C
49 行
#include<stdio.h>#include<signal.h>#include<stdlib.h>static void sig_quit(int);int main(int argc,char *argv[]){ sigset_t newmask,oldmask,pendmask; if(signal(SIGQUIT,sig_quit)==SIG_ERR) { perror("signal"); exit(EXIT_FAILURE); } printf("install signal sig_quit\n"); sigemptyset(&newmask); sigaddset(&newmask,SIGQUIT); if(sigprocmask(SIG_BLOCK,&newmask,&oldmask)<0) { perror("signal"); exit(EXIT_FAILURE); } printf("block SIGQUTE,wait 15 second\n"); sleep(15); if(sigpending(&pendmask)<0) { perror("signal"); exit(EXIT_FAILURE); } if(sigismember(&pendmask,SIGQUIT)) printf("\n SIGQUIT pending\n"); if(sigprocmask(SIG_SETMASK,&oldmask,NULL)<0) { perror("signal"); exit(EXIT_FAILURE); } printf("SIGQUIT unblocked\n"); sleep(15); return 0; }static void sig_quit(int signo){ printf("catch the signal,the process will quit\n"); if(signal(SIGQUIT,SIG_DFL)==SIG_ERR) { perror("signal"); exit(EXIT_FAILURE); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?