Eng*_*uad 2 c linux signals process file-descriptor
我想好好理解以下代码:
/* Become deamon + unstoppable and no zombies children (= no wait()) */
if(fork() != 0) return 0; /* Parent returns OK to shell */
signal(SIGCLD, SIG_IGN); /* ignore child death */
signal(SIGHUP, SIG_IGN); /* ignore terminal hangups */
for(i = 0; i < 32; i++) close(i); /* close open files */
setpgrp(); /* break away from process group */
Run Code Online (Sandbox Code Playgroud)
以下是我对上述代码的理解:
第1行:创建子进程并终止父进程,因此父进程将返回到shell,子进程将继续在后台执行该程序.
第二行:当子进程(执行程序的用户)终止时,忽略应该发送到父进程(谁控制终端)的信号.我觉得这条线会避免僵尸孩子的发生吗?
第3行:我读到它忽略了POSIX的挂断,我不确定它到底是什么.
第4行:关闭描述符文件为0到31的打开文件(我不知道为什么从0到31)
第5行:不知道它做了什么.
能帮我理解一下这段代码吗?提前致谢 :)
| 归档时间: |
|
| 查看次数: |
397 次 |
| 最近记录: |