fread read函数在缓存方面的差别
来源:互联网 发布:单片机控制gprs模块 编辑:程序博客网 时间:2024/06/06 17:59
read/write调用一次即执行一次系统调用。可用于所有文件,包括设备/管道。
fread/fwrite会有缓冲,也就是有预读和延迟写,以减少系统调用次数。适用于常规文件。
fread/fwrite会有缓冲,也就是有预读和延迟写,以减少系统调用次数。适用于常规文件。
例如,read(100)就是实际从文件中读100字节,而fread(100)则可能读1000字节,然后返回100个,下次再读就直接用了。write类似。
fread就是通过read来实现的,fread是C语言的库,而read是系统调用
但是差别在read每次读的数据是调用者要求的大小,比如调用要求读取10个字节数据,read就会读10个字节数据到数组中,而fread不一样,为了加快读的速度,fread每次都会读比要求更多的数据,然后放到缓冲区中,这样下次再读数据只需要到缓冲区中去取就可以了。
fread每次会读取一个缓冲区大小的数据,32位下一般是4096个字节,相当于调用了read(fd,buf,4096)
比如需要读取512个字节数据,分4次读取,调用read就是:
for(i=0; i<4; ++i)
read(fd,buf,128)
一共有4次系统调用
而fread一次就读取了4096字节放到缓冲区了,所以省事了
说明:搜索资料得到的
0 0
- fread read函数在缓存方面的差别
- fread函数和read函数的区别
- fread函数和read函数的区别
- read函数和fread函数的区别
- fread 和 read函数的区别
- fread和read的区别,验证fread是带缓存的
- fread与read的区别---open和fopen的区别--fread函数和fwrite函数
- fopen/fread/fwrite和open/read/write函数的区别
- open/read/write和fopen/fread/fwrite函数的区别
- fread 和 read的区别
- fread与read的区别
- fread和read的区别
- fread和read的区别
- fread与read的区别
- fread和read的用法
- fread和read的区别
- read与fread的使用
- read与fread的区别
- Android Studio中常用设置与快捷键(私人珍藏,Eclipse转AS必看)
- 影像批量除以10000
- C语言的谜题
- VMware Workstation 与 ESX Server 典型应用指南 读书笔记
- java点击按钮弹出对话框
- fread read函数在缓存方面的差别
- 深入浅出遗传算法
- acdream 1188 telephone number 模拟
- java API------PriorityQueue优先队列
- 技术人的未来(一)——跳槽
- C# WebQQ协议群发机器人(一)
- Java compiler level does not match the version of the installed Java project facet
- hdu 4267 A Simple Problem with Integers(树形结构-线段树)
- 一入python深似海--变量和对象