标准IO由ANSI C标准定义www.gooxian.com
在ANSI C标准中还定义了c库,用于提供一系列的函数
标准IO就是c库中定义好的一组用于输入输出的函数,换句话说,只要有c库,就可以使用标准IO
主流操作系统上都实现C库(使用标准IO,程序的可移植性较强)
标准IO通过缓冲机制减少系统调用,实现更高效率。
系统调用:操作系统保护硬件使得应用程序无法直接访问硬件,只能够通过操作系统提供的接口实 现对硬件的访问,我们把这些接口就称为系统调用
流的定义与类型
FILE:
标准IO用一个结构体类型来存放打开文件的相关信息
标准IO的所有操作都是围绕FILE来进行的流(stream)
FILE又被称为流
文本流/二进制流
在windows下区分文本流与二进制流 例如二进制流:换行符\n 文本流:换行符\r\n
在linux操作系统下,文本流与二进制流不做区分
流的缓冲类型
全缓冲:当流的缓冲区无数据或无空间才执行实际IO操作,常用的文件操作就是全缓冲
行缓冲:当在输入和输出中遇到换行符('\n')时,进行IO操作,当流和一个终端相关联时,典型的行缓冲
无缓冲:数据直接写入文件,流不进行缓冲,常见的错误输出就是无缓冲
预定义流:
标准IO预定义3个流,程序运行时自动打开
标准输入流 0 STDIN_FILEON stdin
标准输出流 1 STDOUT_FILEON stdout
标准错误流 2 STDERR_FILEON stderr