fread和read
时间:2011-08-09
来源:互联网
看了下网上的帖子
说fread是缓冲文件系统,read是非缓冲文件系统
说一个是系统自动分配缓存,一个是自己分配
但是我怎么看 两个函数实现的时候 都是通过自己申请的一个数组,
然后将数据保存进数组,再通过write,fwrite将内容写入新文件中去!
那不都是自己分配,申请的内存嘛?怎么还存在上面说的差别?
帮忙分析下上面的两个性质 具体是什么意思?!
说fread是缓冲文件系统,read是非缓冲文件系统
说一个是系统自动分配缓存,一个是自己分配
但是我怎么看 两个函数实现的时候 都是通过自己申请的一个数组,
然后将数据保存进数组,再通过write,fwrite将内容写入新文件中去!
那不都是自己分配,申请的内存嘛?怎么还存在上面说的差别?
帮忙分析下上面的两个性质 具体是什么意思?!
作者: DestinyHot 发布时间: 2011-08-09
没看过源码,不敢肯定,不过从概念来看:
read/write调用一次即执行一次系统调用。可用于所有文件,包括设备/管道。
fread/fwrite会有缓冲,也就是有预读和延迟写,以减少系统调用次数。适用于常规文件。
例如,read(100)就是实际从文件中读100字节,而fread(100)则可能读1000字节,然后返回100个,下次再读就直接用了。write类似。
如果有同学分析代码的话,我也学习一下,呵呵。
read/write调用一次即执行一次系统调用。可用于所有文件,包括设备/管道。
fread/fwrite会有缓冲,也就是有预读和延迟写,以减少系统调用次数。适用于常规文件。
例如,read(100)就是实际从文件中读100字节,而fread(100)则可能读1000字节,然后返回100个,下次再读就直接用了。write类似。
如果有同学分析代码的话,我也学习一下,呵呵。
作者: gaosifuti 发布时间: 2011-08-09
引用 1 楼 gaosifuti 的回复:
没看过源码,不敢肯定,不过从概念来看:
read/write调用一次即执行一次系统调用。可用于所有文件,包括设备/管道。
fread/fwrite会有缓冲,也就是有预读和延迟写,以减少系统调用次数。适用于常规文件。
例如,read(100)就是实际从文件中读100字节,而fread(100)则可能读1000字节,然后返回100个,下次再读就直接用了。write类似。
如果有同学分析代码的……
没看过源码,不敢肯定,不过从概念来看:
read/write调用一次即执行一次系统调用。可用于所有文件,包括设备/管道。
fread/fwrite会有缓冲,也就是有预读和延迟写,以减少系统调用次数。适用于常规文件。
例如,read(100)就是实际从文件中读100字节,而fread(100)则可能读1000字节,然后返回100个,下次再读就直接用了。write类似。
如果有同学分析代码的……
就是fread 系统先申请一段内存,一次性将数据全部读出来,然后根据定义的数组缓存大小限制来再向文件中写数据,系统调用一次,以后每次都是从缓存中取数据!
read每次都是调用系统调用,而且只能读出自己定义的数组大小字节的数据,并写入!?
哪位什么不知接用自己申请的缓存 直接fwrite,还要浪费一次 再存入定义的数组中?
哪里理解错了,求指导!
作者: DestinyHot 发布时间: 2011-08-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28