1. Which signal is generated when we press control-C?
a) SIGINT
b) SIGTERM
c) SIGKILL
d) SIGSEGV
a) SIGINT
b) It is processed when process is switching to kernel mode
3. Which signal is generated when we press ctrl-Z?
a) SIGKILL
b) SIGSTOP
c) SIGABRT
d) SIGINT
d) SIGINT
4. Which signal is sent when the Child process terminates?
a) SIGINIT
b) SIGKILL
c) SIGSTOP
d) SIGCHLD
b) SIGKILL
b) the string "Linux" prints
Output:
[root@localhost sigaction]# gcc -o san san.c
[root@localhost sigaction]# ./san
google
google
google
^CLinux
google
google
^CLinux
google
^Z
[7]+ Stopped ./san
[root@localhost google]#
b) "Alarm clock"
Explanation:After 5 seconds of the execution of this program, the signal SIGALRM hits the process and handler executes.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
Alarm clock
[root@localhost google]#
a) the child process kills the parent process
Explanation:
The SIGKILL signal can not be handled by singal handler function.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
Killed
[root@localhost google]# I am an orphan process because my parent has been killed by me
Handler failed
[root@localhost google]#
d) none of the mentioned
Explanation:
In this process the segmentation fault occurs because the memory is not allocated to the pointer *str.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
Segmentation fault
Segmentation fault (core dumped)
[root@localhost google]#
b) this program will print "Child Exited"
Explanation:
The child process sends SIGCHILD signal to its parent as it terminates.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
Child exited
[root@localhost google]#
b) the parent process kills the child process
Explanation:
The parnet process kills the child by sending a signal.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
Child Process
Child Process
Child Process
Child Process
Child Process
The child process has been killed by the parent process
[root@localhost google]#
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]#
c) both child and parent process ignores the signal
Explanation:
If a process ignores a signal then by default its child also ignores that signal.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
Parent Process
Child Process
Child Process
^CChild Process
^CChild Process
^CChild Process
^Z
[3]+ Stopped ./san
[root@localhost signal]#
c) process will never terminate
Explanation:
According to the signal handler function of this program as the SIGINT signal arrives second time, the signal performs its default operation i.e. termination of the process.
Output:
[root@localhost google]# gcc -o san san.c
[root@localhost google]# ./san
google
google
^CLinux
google
^C
[root@localhost google]#
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]#
b) Send a signal to a process