fopen:保持开放或使用缓冲区是个好主意吗?

Pub*_*bby 1 c c++ io file

所以我有很多需要写的日志文件.它们在程序开始时创建,并在程序关闭时保存到文件.

我想知道它是否更好:

fopen()在程序开始时,然后在程序结束时关闭文件 - 我只需要在需要时写入文件.这些文件是否仍然"开放"会减慢任何事情(例如其他文件io)吗?

要么

我将需要写入的内容保存到缓冲区中,然后打开文件,从缓冲区写入,在程序结束时关闭文件.我想这会更快?

Dig*_*oss 8

好吧,fopen(3) + fwrite(3) + fclose(3) 一个缓冲的I/O包,所以在它上面的另一层缓冲可能只会减慢速度.

无论如何,请选择一个简单而正确的程序.如果它似乎运行缓慢,对其进行分析,然后根据证据进行优化而不是猜测.