【问题标题】:stdio.h or unistd.h, which is faster for file creation/writing/reading?stdio.h 或 unistd.h,文件创建/写入/读取哪个更快?
【发布时间】:2013-09-17 20:38:34
【问题描述】:

对于创建、编辑和读取许多小文件,哪些标头函数更快?大约数千个文件,每个文件大约 100 个字节。我在 Windows 上使用 C,Devcpp。 提前致谢。

【问题讨论】:

  • 100 字节?没有区别。
  • 虽然对于 100 字节的文件并不重要,但对于大文件,请检查是否启用了缓冲。更高级别的函数可以启用缓冲,这可以减少物理 I/O 的数量,这意味着它可以减少实际的 read()/write() 调用次数
  • 如果有疑问,它可能取决于实施的质量——运行一些测量

标签: c file-io stdio unistd.h


【解决方案1】:

stdio.h 是流/缓冲 I/O 的标头(如 fprintf())。

unistd.hPOSIX API 的标头(如read())。

使用缓冲/非缓冲 I/O 的选择取决于应用程序正在执行的操作。

通常最好使用stdio.h 中的C 标准库函数(即用于文件I/O),然后在需要对I/O 进行I/O 时使用unistd.h 等中的POSIX 标准函数套接字等的文件描述符。

【讨论】:

  • 您实际上可以使用 fdopen() 从文件描述符 (int) 创建一个 FILE*。然后你可以使用带有stdio.h的套接字。
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多