0
点赞
收藏
分享

微信扫一扫

标准IO和文件IO

最后的执着 2022-03-17 阅读 76

一、标准IO

标准I/O指的是ANSIC中定义的用于I/O操作的一系列函数,所需头文件:#include<stdio.h>

标准I/O都是基于流进行操作,当用标准I/O打开一个文件时,就会创建一个FILE结构体来描述这个文件,我们把这个结构体形象地称为流。

流的打开和关闭

使用标准I/O打开流的函数有:fopen()/fdopen()/freopen(),它们可以以不同模式打开文件,都返回一个指向FILE的指针,该指针指向对应的I/O流。关闭流的函数fclose(),将流的缓冲区的数据全部写入文件中,并释放相关资源。

二、文件IO

文件I/O指的是由POSIX标准来定义的用于I/O操作的一系列函数。

三、标准IO与文件IO的区别

标准IO和文件IO都可以用来访问文件,那么他们之间有什么区别呢?

1、文件IO又称为低级磁盘IO,遵循POSIX相关标准,任何支持POSIX标准的操作系统上,都支持文件IO。

2、标准IO又称为高级磁盘IO,遵循ANSIC相关标准,只要开发环境中有标准C库,都支持标准IO。

Linux中使用的是glibc,它是标准C库的超集,不仅包含POSIX标准定义的函数,还包含ANSIC中定义的函数,所以在Linux下,既可以使用标准IO,也可以使用文件IO。

通过文件IO读写文件时,每次操作都会执行相关系统调用。这样处理的好处是可以直接读写实际文件,坏处是频繁地系统调用会增加系统开销;而标准IO可以看做是在文件IO的基础上封装了缓冲机制,先读写缓冲区,必要时再访问实际文件,从而减少系统调用次数。

文件IO中用文件描述符表示一个打开的文件,可以访问不同类型的文件(如普通文件、设备文件和管道文件)。而标准IO中用FILE(流)表示一个打开的文件,通常只用来访问普通文件。

 

举报

相关推荐

常用的标准IO和文件IO

标准 IO

标准IO操作

linux学习:标准IO

文件&IO

文件 IO

0 条评论