我正在为嵌入式系统编写几个C程序,我们可以挤出的每一点性能都很重要.部分原因是访问日志文件.在确定文件是否存在时,使用open/fopen和stat之间是否有任何性能差异?我一直在使用stat,假设它只需要对文件系统进行快速检查,而fopen必须实际获得访问文件并在返回之前操作内部数据结构.这有什么好处吗?
stat可能更好,因为它不必为实际读取文件分配资源.您不必调用fclose以释放这些资源,也可以从最近检查过的文件的缓存中受益.
如果有疑问,请测试一下.计时使用每种方法检查1000个文件的大循环,以及存在且不存在的文件名的适当组合.
如果您对源代码stat和fopen,你应该能够通过它来阅读,并得到哪个将需要更多资源的想法.