为什么在编写守护进程时必须关闭标准输入/输出/错误?

d-_*_*_-b 4 unix linux daemon

为什么在编写(unix)守护进程时必须关闭标准输入/输出/错误?

And*_*ath 6

不仅应关闭stdin,stdout和stderr,还应关闭所有打开的文件.

来自"UNIX环境中的高级编程",W.Richard Stevens,Addison-Weseley,第18期印刷,1999年,第417页.

应该关闭不需要的文件描述符.这可以防止守护进程保持打开任何可能从其父级继承的描述符(可能是shell或其他进程).

史蒂文斯先生的建议是获取最大文件描述符并关闭所有文件到该值.

引用的章节是关于'守护进程'.请注意,在编写守护进程时,关闭文件描述符只是五分之一.