fread与read的差别(文件io补充)
这里有一个我们常常提出的问题就是fread,read的差别。(当然这两个分别代表了操作文件系统的两套不同的函数,包含open,read, write, seek 等)。
一.他们的差别就是一个(read)是UNIX 中的系统调用,是类UNIX系统。提供给程序猿操作文件的接口(要不然你怎样操作文件?);而另外一个则是C语言提供的读取文件的函数库,自然这个函数库(ANSI)的实现是以相应的系统调用为基础的。
二.fread有缓冲(准确的说法是缓冲的空间不同)
这里说缓冲。事实上read函数也有缓冲(可是非常多人说没有,依据资料。read是系统函数,而内核在读取硬盘(外设设备)时,自己也会缓冲读写),可是fread缓存在用户空间。而read是缓存在内核。所以假设使用read读一个文件时。通常须要很多其它的訪问cpu。而fread能够较少訪问cpu次数。进而提高效率。所以。假设文件须要进用户程序。你一般使用fread较好。而你仅仅是单纯的复制的话,就是从这块磁盘到还有一块磁盘,那就通常是使用read较好,由于这样能够避免数据进入用户空间,内核直接实现,效率更高。
相同的fwrite、write等一系列函数都是如此。
fread与read的差别(文件io补充)的更多相关文章
- Linux学习记录--文件IO操作相关系统编程
文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...
- linux文件io与标准io
文件IO实际是API,Linux对文件操作主要流程为:打开(open),操作(write.read.lseek),关闭(close). 1.打开文件函数open(): 涉及的头文件: #includ ...
- 标准io与文件io
A: 代码重复: 语句块1: while(判断) { 语句块2: 语句块1: } 上面可以改写为: while(1) { 语句块1: if(判断) break: 语句块2: } B: 标准IO和文件I ...
- (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 文件IO和标准IO
2015.2.26 星期四,阴天 今天的内容主要是文件IO man 手册的分册: man -f open 查看那些分册中有openman 1 -- 普通的命令程序man 2 -- 系统调用man 3 ...
- 文件IO和标准IO的区别【转】
一.先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都调用内核中的一个系统调用.也就是一般所 ...
- 标准IO与文件IO 的区别【转】
本文转载自:http://blog.sina.com.cn/s/blog_63f31f3401013jrn.html 先来了解下什么是标准IO以及文件IO. 标准IO:标准I/O是ANSI C建立的一 ...
- linux 文件IO
1.文件描述符 (1)文件描述符的本质是一个数字,这个数字本质上是进程表中文件描述符表的一个表项,进程通过文件描述符作为index去索引查表得到文件表指针,再间接访问得到这个文件对应的文件表.(2)文 ...
- 文件IO大纲
文件流与文件描述符的区别 a) 任何进程在运行时都默认打开3个流对象,(stdin, stdout, stderr)它们都有对应的文件描述符,其文件描述符分别为0,1,2,以后打开的文件描述符的值一般 ...
随机推荐
- IIS服务中五种身份验证
转载:http://os.51cto.com/art/201005/202380.htm 作为微软最经典的Web服务之一的IIS服务有大致上五种Web身份认证方法.身份认证时保障IIS服务安全的根本, ...
- MVC三级联动无刷新
本篇实现有关客户.订单和产品的无刷新三级联动,先看最终效果: 没有选择时,后2个Select状态为禁用: 当选择第1个Select,第2个Select可供选择,第3个Select依旧禁用: 当选择第2 ...
- Available Date 相关
Available Date 写错了怎么办? http://www.cocoachina.com/bbs/read.php?tid=7224&page=1现在好像不需要改那个availa ...
- 【微信小程序】微信小程序 文本过长,自动换行的问题
小程序开发过程出现的问题: 文本过长,以致于在view中显示不全,没有自动换行的问题 解决方法: 在wxss样式文件中添加样式 .font-break { word-break:break-all; ...
- 使用开源库 SDWebImage 异步下载缓存图片(持续更新)
source https://github.com/rs/SDWebImage APIdoc http://hackemist.com/SDWebImage/doc Asynchronous im ...
- 约合¥1720 LG法国称G Watch将于6月开卖
近来LG法国官方透露音讯称旗下首款智能手表G Watch将于本年6月份正式出售,预定报价为199欧元(约合¥1720). 这就意味着这款智能手表会在googleI/O大会完成之后就会开端出售,从goo ...
- Coursera课程《Python数据结构》中课件
You can access the Google Drive containing all of the current and in-progress lecture slides for thi ...
- @ArrayList剖析
第1部分 ArrayList介绍 ArrayList简介 Resizable-array implementation of the List interface. Implements all op ...
- 简单MapReduce思维导图
- Scala中_(下划线)的常见用法
Scala中_(下划线)的常见用法 地址:https://www.jianshu.com/p/0497583ec538