【1】IO定义
IO:输入输出,对文件的读写
IO:标准IO、文件IO
标准IO: 采用库函数(间接系统调用)的形式对文件进行读写操作
文件IO: 采用直接系统调用的形式对文件进行读写操作(对文件操作的函数接口,可直接引起系统调用的过程)
【2】标准IO
标准IO:使用标准IO可以有效的减少系统调用的次数,提高系统的运行效率。在执行系统调用时,Linux系统从用户态切换到内核态,处理相应的请求,然后再返回到用户态。标准IO在操作文件之前,先操作缓存区,等到缓存区满足条件之后,再执行系统调用,实现对文件的操作,从而减少了系统调用的次数。
【3】系统预定义流指针
流指针是与终端有关系的流指针
stdin 标准输入(默认终端输入)
stdout 标准输出(默认终端输出)
stderr 标准错误输出(默认终端错误输出)
【4】缓存区
当使用标准IO函数时,操作缓存区
全缓存:当流指针与文件相关联时(使用标准IO的函数操作文件时)。当缓存区满、程序正常结束、强制刷新(fflush())时才会进行刷新。
行缓存:当流指针与终端相关联时(使用标准IO的函数操作终端时),即 stdin、stdout、printf、scanf等。
当 遇到“\n”、程序正常结束、强制刷新(fflush())时进行刷新。
无缓存:没有缓存区,标准出错流就是无缓冲。