#include <errno.h>
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
typedef void (*sig_handler_t)(int);
void sig_int(int signo);
sig_handler_t signal(int signo, sig_handler_t func);
void sig_int(int signo)
{
printf("caught signal INTERRUPT!\n");
}
sig_handler_t signal(int signo, sig_handler_t func)
{
struct sigaction act, oact;
sigemptyset(&act.sa_mask);
act.sa_handler = func;
if(sigaction(signo, &act, &oact) < 0)
{
perror("sigaction");
return 0;
}
return oact.sa_handler;
}
int main(int argc, char **agrv)
{
signal(SIGINT, sig_int);
while(1)
{
pause();
}
return 0;
}
用sigaction实现signal
最新推荐文章于 2015-12-10 09:31:29 发布