linux学习笔记12-用户信号
用户信号
前几节,主要使用的系统信号,在程序中一般使用SIGUSR1和SIGUSR2使用SIGUSR1信号
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
//用sigaction替代signal函数的功能
int mysignal(int signo,void (*func)(int))
{
struct sigaction act,oact;
act.sa_handler = func;
sigemptyset(&act.sa_mask); //必须用sigemptyset初始化sigcation的sa_mask成员
act.sa_flags = 0;
return sigaction(signo,&act,&oact);
}
//信号触发处理动作的函数
void signal_handler(int signo)
{
switch(signo)
{
case SIGUSR1:
printf("user signal!\n");
exit(1); //退出程序
break;
}
}
int main(int argc,char *argv[])
{
mysignal(SIGUSR1,signal_handler); //注册SIGUSR1信号
while(1)
{
printf("wait alarm!\n");
sleep(5);
}
return 0;
}
秋风
2016-11-26