1#include <signal.h> 2#include <unistd.h> 3#include <stdio.h> 4#include <time.h> 5 6 7void 8handler(int signal) 9{ 10 printf( "inside handler()\n" ); 11} 12 13 14int 15main(int argc, char* argv[]) 16{ 17 struct sigaction signalAction; 18 sigset_t blockedSignalSet; 19 20 sigfillset(&blockedSignalSet); 21 sigdelset(&blockedSignalSet, SIGALRM); 22 23 sigemptyset(&signalAction.sa_mask); 24 signalAction.sa_flags = 0; 25 signalAction.sa_handler = handler; 26 sigaction(SIGALRM, &signalAction, NULL); 27 28 fprintf(stdout, "before sigsuspend()\n"); 29 alarm(2); 30 sigsuspend(&blockedSignalSet); 31 fprintf(stdout, "after sigsuspend()\n"); 32 33 return 0; 34} 35