目录
一、标准流和错误处理
1.重定向
由于标准输出和标准错误输出通常都是直接打印到屏幕上,为了区分它们,我们可以使用Linux shell的重定向功能:
- 重定向标准输入使用<
- 重定向标准输出使用>
- 重定向标准错误输出使用2>
2.标准流
3.错误处理
每个流对象的内部都有两个指示器:一个是文件结束指示器,当遇到文件尾时,该指示器被点亮;另一个是错误指示器,当读写文件出错时,该指示器被设置。
- 错误指示器——ferror
- 使用clearerr函数可以人为地清除文件末尾指示器和错误指示器的状态。
- ferror函数只能检测是否出错,但无法获取错误原因。不过,大多数系统函数在出现错误的时候会将错误原因记录在errno中。
- perror函数可以直观地打印出错误原因。
- strerror函数直接返回错误码对应的错误信息。
二、IO缓冲区
1.IO缓冲区
- 标准IO提供了三种类型的缓冲模式:① 按块缓存;② 按行缓存;③ 不缓存
- 按块缓存也称为全缓存,即在填满缓冲区后才进行实际的设备读写操作;按行缓存是指在接收到换行符('\n’)之前,数据都是先缓存在缓冲区的;不缓存,也就是允许直接读写设备上的数据。
2.setvbuf
- setvbuf函数用于指定一个数据流的缓存横式。