Upload
kiran-george-chennattucherry
View
214
Download
0
Embed Size (px)
Citation preview
PROGRAM CODE#include
#include
#include
int keep_going =1;
void siginthandler(int sig)
{
printf("You Pressed Ctrl + C ending\n");
exit(1);
}
void sigquithandler(int sig)
{
printf("You pressed Ctrl + \\ ending\n");
exit(1);
}
void catch_alarm(int sig)
{
printf("Alarm Occurred\n");
keep_going =0;
}
void chldhandler(int sig)
{
int id;
id = wait(NULL);
printf("Pid %d exited.\n",id);
}
int main()
{
signal(SIGQUIT,sigquithandler);
signal(SIGINT,siginthandler);
signal(SIGALRM,catch_alarm);
alarm(5);
while(keep_going);
signal(SIGCHLD,chldhandler);
if(!fork())
{
printf("Child pid is %d\n",getpid());
exit(0);
}
printf("Parent process is %d\n",getpid());
getchar();
return 0;
}
EXECUTION STEPSgcc signal.c
./a.out
OUTPUTCase 1:
You Pressed Ctrl + C ending
Case 2:
You pressed Ctrl + \ endingCase 3:
Alarm Occurred
Parent process is 5244
Child pid is 5246
Pid 5246 exited.