Signal Handling Question:
Download Questions PDF

What will print as the SIGINT signal hits the running process of this program?

#include<stdio.h>
#include<stdlib.h>
#include<signal.h>

void response (int);
void response (int sig_no)
{
printf("%s",sys_siglist[sig_no]);
}
int main()
{
signal(SIGINT,response);
while(1){
printf("googlen");
sleep(1);
}
return 0;
}
a) Interrupt
b) Stop
c) Terminate
d) none of the mentioned

Linux Signal Handling Interview Question
Linux Signal Handling Interview Question

Answer:

a) Interrupt
Explanation:
The messages associated with signals can be access by the function sys_siglist().
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
google
google
google
^CInterruptgoogle
google
^CInterruptgoogle
google
^CInterruptgoogle
google
google
^Z
[4]+ Stopped ./san
[root@localhost google]#

Download Linux Signal Handling Interview Questions And Answers PDF

Previous QuestionNext Question
In this program

#include<stdio.h>
#include<signal.h>
#include<stdlib.h>

int main()
{
pid_t child;
child=fork();
switch(child){
case -1 :
perror("fork");
exit(1);
case 0 :
while(1){
printf("Child Processn");
sleep(1);
}
break;
default :
sleep(5);
kill(child,SIGINT);
printf("The child process has been killed by the parent processn");
break;
}
return 0;
}
a) the child process kills the parent process
b) the parent process kills the child process
c) both the processes are killed by each other
d) none of the mentioned
What happens as the SIGINT signal hits the running process of this program?

#include<stdio.h>
#include<signal.h>
#include<stdlib.h>

int main()
{
pid_t child;
signal(SIGINT,SIG_IGN);
child=fork();
switch(child){
case -1:
perror("fork");
exit(1);
case 0:
while(1){
printf("Child Processn");
sleep(1);
}
break;
default :
while(1){
printf("Parent Processn");
pause();
}
break;
}
return 0;
}
a) child process terminates
b) parent process terminates
c) both child and parent process ignores the signal
d) none of the mentioned