📄 11-9.c
字号:
#include <signal.h>
#include <stdio.h>
void sig_handler(int signo)
{
switch(signo) {
case SIGUSR1:
printf("Received SIGUSR1 signal.\n");
break;
case SIGUSR2:
printf("Received SIGUSR2 signal.\n");
break;
case SIGSEGV:
printf("Received SIGSEGV signal.\n");
break;
}
}
int main(void)
{
struct sigaction action;
sigset_t sigmask;
sigemptyset(&sigmask);
sigaddset(&sigmask, SIGUSR1);
sigaddset(&sigmask, SIGUSR2);
sigaddset(&sigmask, SIGSEGV);
memset(&action, 0, sizeof(action));
action.sa_handler = sig_handler;
action.sa_mask = sigmask;
sigaction(SIGUSR1, &action, NULL);
sigaction(SIGUSR2, &action, NULL);
sigaction(SIGSEGV, &action, NULL);
sigfillset(&sigmask);
sigdelset(&sigmask, SIGUSR1);
sigdelset(&sigmask, SIGUSR2);
sigdelset(&sigmask, SIGSEGV);
while (1) {
sigsuspend(&sigmask);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -