Question: 3. What happens as the SIGINT signal hits the running process of this program?<div class="hk1_style-wrap4"><div class="hk1_style-wrap3"><div class="hk1_style-wrap2"><div class="hk1_style-wrap"><div class="hk1_style"><div class="c"><ol><li class="li1"><pre class="de1"> <span class="co2">#include&lt;stdio.h&gt;</span></pre></li><li class="li1"><pre class="de1"> <span class="co2">#include&lt;signal.h&gt;</span></pre></li><li class="li1"><pre class="de1"> <span class="co2">#include&lt;stdlib.h&gt;</span></pre></li><li class="li1"><pre class="de1">&nbsp;</pre></li><li class="li1"><pre class="de1"> <span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span></pre></li><li class="li1"><pre class="de1"> <span class="br0">{</span></pre></li><li class="li1"><pre class="de1"> pid_t child<span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> signal<span class="br0">(</span>SIGINT<span class="sy0">,</span>SIG_IGN<span class="br0">)</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> child<span class="sy0">=</span>fork<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> </pre></li><li class="li1"><pre class="de1"> <span class="kw1">switch</span><span class="br0">(</span>child<span class="br0">)</span><span class="br0">{</span></pre></li><li class="li1"><pre class="de1"> <span class="kw1">case</span> <span class="sy0">-</span><span class="nu0">1</span><span class="sy0">:</span> </pre></li><li class="li1"><pre class="de1"> <span class="kw3">perror</span><span class="br0">(</span><span class="st0">"fork"</span><span class="br0">)</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> <span class="kw3">exit</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> <span class="kw1">case</span> <span class="nu0">0</span><span class="sy0">:</span></pre></li><li class="li1"><pre class="de1"> <span class="kw1">while</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="br0">{</span></pre></li><li class="li1"><pre class="de1"> <span class="kw3">printf</span><span class="br0">(</span><span class="st0">"Child Process<span class="es1">\n</span>"</span><span class="br0">)</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> sleep<span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> <span class="br0">}</span></pre></li><li class="li1"><pre class="de1"> <span class="kw2">break</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> <span class="kw1">default</span> <span class="sy0">:</span></pre></li><li class="li1"><pre class="de1"> <span class="kw1">while</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="br0">{</span></pre></li><li class="li1"><pre class="de1"> <span class="kw3">printf</span><span class="br0">(</span><span class="st0">"Parent Process<span class="es1">\n</span>"</span><span class="br0">)</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> pause<span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> <span class="br0">}</span></pre></li><li class="li1"><pre class="de1"> <span class="kw2">break</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> <span class="br0">}</span></pre></li><li class="li1"><pre class="de1"> <span class="kw1">return</span> <span class="nu0">0</span><span class="sy0">;</span></pre></li><li class="li1"><pre class="de1"> <span class="br0">}</span></pre></li></ol></div></div></div></div></div></div>
Options:
child process terminates
parent process terminates
both child and parent process ignores the signal
none of the mentioned
Answer: C