f是ANSI的C标准库。而后者的是UNIX下的系统调用。

fread带有缓冲,是read的衍生,或者说fread是通过read实现的
要想直接和硬件打交道,必须用read

fopen/fread是C标准的库函数,操作的对象是: file stream
open/read是和操作系统有关的系统调用。操作的对象是: “file descriptor”

fread返回的是一个FILE结构指针
而read返回的是一个int的文件号

如果文件的大小是8k。
你如果用read/write,且只分配了2k的缓存,则要将此文件读出需要做4次系统调用
来实际从磁盘上读出。
如果你用fread/fwrite,则系统自动分配缓存,则读出此文件只要一次系统调用从磁
盘上读出。
也就是用read/write要读4次磁盘,而用fread/fwrite则只要读1次磁盘。效率比read
/write要高4倍。

如果程序对内存有限制,则用read/write比较好。

一般用来处理文件
都用fread 和fwrite,它自动分配缓存,速度会很快,比自己来做要简单如果要处理一些特殊的描述符,用read 和write,如套接口,管道之类的

转载于:https://www.cnblogs.com/shaoguangleo/archive/2010/11/30/2805826.html

fread 和 read的区别相关推荐

  1. fread和 fgets的区别:

    fread和 fgets的区别: fread :以字节位计算长度,按照指定的长度和次数读取数据,遇到结尾或完成指定长度读取后停止 . fgets :整行读取,遇到回车换行或结尾停止.在文本方式时使用. ...

  2. linux系统——fread()与read()函数族区别

    fread与read区别: 1,fread是带缓冲的,read不带缓冲. 2,fopen是标准c里定义的,open是POSIX中定义的. 3,fread可以读一个结构.read在linux/unix中 ...

  3. read/fread write/fwrite 的区别

    fread就是通过read来实现的,fread是C语言的库,而read是系统调用. 差别在read每次读的数据是调用者要求的大小,比如调用者要求读取10个字节数据,read就会从内核缓冲区(操作系统开 ...

  4. 带缓冲的IO和不带缓冲的IO

      文件操作中有两套函数,一套是C库中的 fopen().fread()-,还有一套是linux的系统调用 open().read()-   虽然都是实现文件操作,但它们之间还是有一些不同.或许在网上 ...

  5. UNIX环境高级编程笔记之文件I/O

    一.总结 在写之前,先唠几句,<UNIX环境高级编程>,简称APUE,这本书简直是本神书,像我这种小白,基本上每看完一章都是"哇"这种很吃惊的表情.其实大概三年前,那会 ...

  6. js 读取php文件内容为空,PHP 读取文件内容代码(txt,js等)

    PHP 读取文件内容代码(txt,js等) 发布于 2014-10-15 20:15:37 | 128 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...

  7. c语言文件操作函数(未完待续)

    while(!feof(fp1)),使用feof()的时候会比你期望的多执行一次.因为它检测到结尾的'\0',时仍然不是文件的结尾,所以会继续执行一次.为解决这个问题,可以先读,在判断,然后打印 fr ...

  8. fprintf fscanf等函数的用法

    fprintf fscanf等函数的用法 对文件的读和写是最常用的文件操作.在C语言中提供了多种文件读写的函数: ·字符读写函数 :fgetc和fputc ·字符串读写函数:fgets和fputs · ...

  9. C/C++读取txt

    1.读取txt的方式: TXT中存了一列的数字,如: 100 99 98 ... 3 2 1 读取时选用fscanf()函数,在ys2015中采用fscanf_s()函数. 格式为: fscanf(文 ...

最新文章

  1. 为什么我还没 Fix 你的 Issue
  2. TCP/IP详解 卷一(第十一章 UDP:用户数据报协议)
  3. es6 Set的几种使用场景
  4. Android APK反编译详解(附图)(转)
  5. 将Quarkus应用程序部署到AWS Elastic Beanstalk
  6. 数据库事务及事务的特征
  7. U3D 平行光阴影细节 Directional Shadow Details
  8. Raki的统计学习方法笔记0x9章:EM算法及其推广
  9. 信奥中的数学:卷积、傅立叶变换
  10. Qt开发,应用程序错误,应用程序无法正常启动0xc000007b
  11. 物联网应用案例,中易云真实搭建项目
  12. 机器人视觉系统分为哪几种,主要包括哪些关键技术?
  13. Ubuntu下安装anydesk、realVNC实现远程
  14. 乐博乐博亮相2020科博会,掀起少儿编程教育新浪潮!
  15. c函数 postgres_C-语言函数
  16. 当代偷车贼分两种,剪电线的和用智能设备的
  17. 2021高校毕业生薪酬Top100出炉 !
  18. HashMap是什么?HashMap的底层原理是什么?
  19. 图文档管理系统-让企业图文档管理“井井有条”
  20. si,di,ds,es寄存器

热门文章

  1. python制作测试报告_使用 python 生成 extent report 测试报告
  2. java gc机制新区域旧屋_Java 内存回收机制——GC机制-Go语言中文社区
  3. matlab线性拉伸函数,采用线性变换对图像的每一个像素灰度作线性拉伸-Read.PPT
  4. 《软件需求分析(第二版)》第 2 章——客户眼中的需求 重点部分总结
  5. PyTorch 分布式训练DDP 单机多卡快速上手
  6. linux18配置静态ip,ubuntu18配置静态IP地址
  7. 太阳花图片_长寿花扔水里,光长叶不开花?赶紧加点营养液
  8. JAVA构造函数是不是封装_Java 封装与构造函数
  9. wps如何保存最终状态_如何使得打开word文件显示最终的修改状态
  10. 数据集怎么导出_PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击...