gpt4 book ai didi

c++ - 当你想明确指定缓冲区大小时,你应该使用 fread/fwrite 还是 read/write 系统调用?

转载 作者:行者123 更新时间:2023-11-30 05:48:51 25 4
gpt4 key购买 nike

我有一个应用程序,我想从硬盘驱动器读取数据/向硬盘驱动器写入数据,但同时我想指定将要使用的缓冲区的大小,以使应用程序更高效(I/O 相关)。

我实现了两个版本,一个使用读/写系统调用,一个使用 fread/fwrite 函数来指定缓冲区大小,我调用了 setvbuf 函数。

但是我注意到大输入的运行时间有 2 的差异。

这引发了一些问题,即当您想要利用从磁盘传输数据 block 的能力以最小化 I/O 总量时,是否应该始终首选读/写系统调用。

最佳答案

这取决于读取/写入的数据量,如果将缓冲区设置得非常小,则读取/写入大量数据时效率低下。

Here是比较。

关于c++ - 当你想明确指定缓冲区大小时,你应该使用 fread/fwrite 还是 read/write 系统调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28044221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com