通常,大多数产品都实现了日志文件机制。就fopen / fclose性能而言,写入调试日志文件的最佳实践是什么。当某些语句需要写入日志文件时,保持文件指针打开(如果启用了记录器)或频繁打开和关闭文件指针是好的选择吗?
发布于 2010-12-22 14:38:03
理想情况下,您不应该在日志文件结束之前关闭日志文件。通常,许多产品也有一些“崩溃处理”机制,在任何情况下都会在应用程序终止之前调用。这将是关闭日志文件的最佳位置。
对于windows,您可以检查SetUnhandledExceptionFilter
发布于 2010-12-22 14:37:31
通常,这取决于您要与之交互的文件类型。当然,二进制文件在读取时必须是打开的。如果文件是纯文本,则可以将文本解析为字符串并立即关闭该文件。
我想说的是,你应该在整个程序生命周期中保持文件指针打开,但是如果你遇到崩溃,它永远不会被关闭。然后,我会建议在相对安全和低风险的操作中保持它的打开,但当你对应用程序的稳定性不太满意时,要不断地打开/关闭它。没有人希望文件指针保持打开状态。:)
发布于 2010-12-22 18:48:19
基于您可以使用fstream的注释。只需在开始时打开一个ofstream,当程序结束时它就会关闭。使用fstream而不是C风格的fopen/close让很多事情变得更容易,因为它符合RAII原则,所以您不必担心文件关闭。您可能没有理由在每次要记录某些内容时手动关闭文件并重新打开它。如果您不想同时从另一个程序写入同一文件,那么定期打开和关闭该文件只是浪费时间和代码。
https://stackoverflow.com/questions/4506732
复制相似问题