Examveda

What is the output of this program?
#include<stdio.h>
#include<signal.h>
#include<stdlib.h>
 
void response (int);
void response (int sig_no)
{
    printf("%s\n",sys_siglist[sig_no]);
    printf("This is singal handler\n");
}
int main()
{
    pid_t child;
    int status;
    child = fork();
    switch (child){
        case -1 :
            perror("fork");
            exit (1);
        case 0 :
            kill(getppid(),SIGKILL);
            printf("I am an orphan process because my parent has been killed by me\n");
            printf("Handler failed\n");
            break;
        default :
            signal(SIGKILL,response);
            wait(&status);
            printf("The parent process is still alive\n");
            break;
    }
    return 0;
}

A. the child process kills the parent process

B. the parent process kills the child process

C. handler function executes as the signal arrives to the parent process

D. none of the mentioned

Answer: Option A


This Question Belongs to Computer Science >> Linux

Join The Discussion

Related Questions on Linux