Signal Handling Question:

What will happen as we press the "Ctrl+c" key after running this program?

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

void response (int);
void response (int sig_no)
{
printf("Linuxn");
}
int main()
{
signal(SIGINT,response);
while(1){
printf("googlen");
sleep(1);
}
return 0;
}
a) the string "Linux" will print
b) the process will be terminated after printing the string "Linux"
c) the process will terminate
d) none of the mentioned

Linux Signal Handling Interview Question
Linux Signal Handling Interview Question

Answer:

a) the string "Linux" will print
Explanation:
The signal handler function "response" executes after recieving the signal SIGINT.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
google
google
google
^CLinux
google
google
^CLinux
google
google
^CLinux
google
^Z
[2]+ Stopped ./san
[root@localhost google]#


Previous QuestionNext Question
What will happen if we press "Ctrl+c" key two times after running this program?

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

void response(int);
void response(int sig_no)
{
printf("Linuxn");
signal(SIGINT,SIG_DFL);
}
int main()
{
signal(SIGINT,response);
while(1){
printf("googlen");
sleep(1);
}
return 0;
}
a) process will terminate in the first time
b) process will terminate in the second time
c) process will never terminate
d) none of the mentioned
Another signal that cannot be caught is:
a) SIGPIPE
b) SIGHUP
c) SIGSTOP
d) SIGUSR1