IT
sigactdemo2.c
kio467
2014. 11. 5. 09:58
#include <stdio.h>
#include <signal.h>
main()
{
int i = 5;
struct sigaction newhandler;
sigset_t sigs, prevsigs;
void inthandler();
newhandler.sa_handler = inthandler;
newhandler.sa_flags = SA_RESETHAND | SA_RESTART;
sigemptyset(&sigs);
sigaddset(&sigs, SIGINT);
sigprocmask(SIG_BLOCK, &sigs, &prevsigs);
newhandler.sa_mask = sigs;
if(sigaction(SIGINT, &newhandler, NULL) == -1)
perror("sigaction");
while (i--)
sleep(1);
sigprocmask(SIG_SETMASK, &prevsigs, NULL);
}
void inthandler(int s)
{
printf("\n");
sleep(s);
printf("\n");
}