3
PROGRAM CODE #include<stdio.h> #include<signal.h> #include<stdlib.h> 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);

progm4

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.