dtb*_*rne 15
是.但是,最好自己动手.此外,您将在脚本的其余部分的整个执行期间保持文件处于打开状态,这是您应该避免的.因此,除非您的脚本在完成编写后直接完成执行,否则您基本上将文件打开的时间超出了您的需要.
将文件描述符保持打开也有安全隐患:http://cwe.mitre.org/data/definitions/403.html
您的程序可能执行具有不同权限级别的程序,泄漏的文件描述符可能允许私有信息跨越两个不同信任级别的进程之间的边界:
http://osvdb.org/7559
CVE-2006-5397
CVE-2007-5159
CVE-2008-3914
安全漏洞的有趣之处在于,当你编写初始函数时,它可能是完全安全的,但是由于看似无辜的变化,一两年后可能会变得不安全.
输出缓冲区中可能存在未写入的数据,在文件关闭之前不会写入.如果在最终写入时发生错误,则无法判断输出是否不完整,这可能会导致各种问题.
通过显式调用fclose() 并检查其返回值,您有机会:
或其他适合您情况的方式.
这在fclose()手册页的评论部分提到.