【发布时间】:2020-06-16 16:32:50
【问题描述】:
我正在为我的嵌入式应用程序编写记录器。我需要将所有日志写入文件。目前我正在为每次写入打开和关闭文件。
为了提高性能,在整个应用程序范围内保持日志文件打开并调用 fflush() 而不在每次写入时关闭文件是否安全?
【问题讨论】:
-
刷新可能比不刷新要好,但除此之外,它是由实现定义的,因此您应该提供有关操作系统、主板、规格等的信息。
-
是的,
fflush不依赖于fclose(文件流应该是打开的) -
fflush将写入缓冲区中的剩余字节写入底层文件写入函数(Linux 下的write,或任何其他特定于实现的东西),这是有保证的。但是无法保证底层文件写入函数实际上做了什么。所以IMO它是特定于实现的。你试过只打电话给fflush吗? -
@Jabberwocky 是的,我尝试调用 fflush 并且似乎正在工作,但想知道它是否正确。
-
@ChetanPhadtale 你的平台是什么?只是出于好奇。