打开/读/写是低级I/O功能,如果速度是我首先关心的问题,如何选择打开/读/写和fopen/fread/fwrite?什么时候应该使用打开/读/写和打开/读/写
回答
更高级别的功能也为您提供了易用性,fopen()
等功能为您提供内置I/O缓冲,与open()
不同。 I/O缓冲确保fopen()
比open()
快得多。
除了以上的区别。如果你刚刚文件描述符,你应该使用读,写等,而如果你有一个FILE *
,你应该使用功能,如fread
,fwrite
等
但是,在不同的条件下哪个更快? – 2012-03-14 03:53:00
@MickeyShine:也许你应该创建一个基准来找出答案。如果性能是您的担忧,那么您将在稍后需要*这些基准测试工具。 – 2012-03-14 03:53:57
@MickeyShine:您应该按照Greg的建议回答您的查询。通常,如果您正在进行大量的查找操作,则I/O缓冲会导致性能下降,而如果您正在读取或写入文件,I/O缓冲有助于提高性能。 – 2012-03-14 03:56:33
- 1. 打开阅读和写作在Javascript
- 2. 为阅读和写作打开文件?
- 3. 打开cmd并读取和写入它
- 4. 打开,写入和读取ttyUSB0
- 5. 什么时候应该打开和关闭MongoDB连接?
- 6. PHP flock()用Simplexml打开,读写
- 7. 为什么和什么时候应该在MySQL和PostgreSQL中读写分裂?
- 8. 收缩文件打开在读/写
- 9. 什么时候应该重写toString()?
- 10. .MSI文件为什么打开只读?
- 11. 如何打开某些文件/目录读写,其他只读
- 12. 为什么使用FILE_FLAG_NO_BUFFERING打开文件时写入失败?
- 13. 如何使用vbscript以读写模式打开qtp(.usr)文件
- 14. 打开和读取文件
- 15. 以读写方式打开工作簿并关闭时保存
- 16. C++打开只读
- 17. 在perl中打开文件以读取和写入(不附加)
- 18. 如何打开,读取和写入串行端口C
- 19. 打开和读写串口的最大线程数MOXA NPort
- 20. 打开读取和写入的文件可以取消关联
- 21. 是否可以读取和写入文件只打开一次?
- 22. 在Windows内核中打开,读取和写入串行端口
- 23. 从MyApplication打开SQLite数据库 - 无法在读/写模式下打开
- 24. 的Java如何创建,打开,写入和读取,然后关闭该文件
- 25. 阅读流并打开该文档
- 26. 读写应用IOS问题开始
- 27. 如何用PHPExcel打开Excel文件进行读写操作?
- 28. 用askopenfilename打开和读取文件
- 29. 什么时候应该使用AWS,什么时候不使用
- 30. 什么时候应该开始使用字符串替换sprintf?
考虑到标准输入输出函数调用底层操作系统的功能是完成他们的工作......如果您认为您可以编写比C标准库更好的代码,请随时这样做。 – 2012-03-14 03:52:34
@Greg Hewgill如果我想让它比fopen/fread/fwrite更快,实现我自己的I/O函数的任何提示? – 2012-03-14 03:55:16
完全取决于您的应用程序的文件访问模式。如果你顺序阅读,你会想要一个大缓冲区。如果你正在寻求很多,你可能想要使用异步I/O。如果你想要另一个非常快速的替代方案,考虑内存映射文件 – 2012-03-14 04:01:36