- 72
- 0
- 约3.43千字
- 约 6页
- 2016-12-06 发布于北京
- 举报
标准和文件的区别个人收藏
标准IO与文件IO 的区别
在谈两者区别之前,先来了解下什么是标准IO以及文件IO。
1定义
标准IO:
标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头中的定义,具有一定的可移植性标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。
(1)全缓存:当填满标准IO缓存后才进行实际的IO操作。
(2)行缓存:当输入或输出中遇到新行符时,标准IO库执行IO操作。
(3)不带缓存:stderr就是了。
称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于*nix平台。两者一个显著的不同点在于,标准I/O默认采用了缓冲机制,比如调用fopen函数,不仅打开一个文件,而且建立了一个缓冲区(读写模式下将建立两个缓冲区),还创建了一个包含文件和缓冲区相关数据的数据结构。低级I/O一般没有采用缓冲,需要自己创建缓冲区,不过其实在*nix系统中,都是有使用称为内核缓冲的技术用于提高效率,读写调用是在内核缓冲区和进程缓冲区之间进行的数据复制。使用标准IO就不需要自己维护缓冲区了,标准IO库会根据stdin/stdout来选择缓冲类型,也就是说当你使用标准IO的时候,要清楚它的std
原创力文档

文档评论(0)