day1
1缓冲
全缓冲,行缓冲,无缓冲
全缓冲 :全缓冲指的是系统在填满标准IO缓冲区之后才进行实际的IO操作;注意,对于驻留在磁盘上的文件来说通常是由标准IO库实施全缓冲。
行缓冲 :在这种情况下,标准IO在输入和输出中遇到换行符时执行IO操作;注意,当流涉及终端的时候,通常使用的是行缓冲。
无缓冲 :无缓冲指的是标准IO库不对字符进行缓冲存储;注意,标准出错流stderr通常是无缓冲的
1.1 setvbuf
int setvbuf (file *stream,char *buf,int mode,size_t size);
功能:更改缓冲类型
返回值:0 成功,非0,失败;
stream :流(文本流,标准输入输出)
buf:指定缓冲区地址(默认缓冲区NULL)
mode:缓冲类型
——IONBF:无缓冲
_IOLBF:行缓冲
_IOFBF:全缓冲
size:更改缓冲区大小
1.2 标准流
标准输入:0(int) stdin(FILE*)
标准输出:1 stdout
标准出错:2 stderr
2 标准IO库函数
2.1 fopen 打开文件
FILE* fopen(const char *path,const char *mode);
功能:打开一个文件,并以流的形式标记。
返回值:成功返回一个流指针,失败返回NULL。
path:要打开的文件,名(包含路径)
mode:
r -- 只读;
r+-- 可读写;
w -- 写;(文件会覆盖原内容)
w+ -- 读写(文件不存在就创建,有文件则覆盖)
a -- 追加;
a+ -- 追加
2.2 fclose
int fclose()
功能:通过流指针关闭打开的文件;
返回值:0 NULL
stream:流指针
2.3 读写
2.3.1 读
int fget()
功能:从流读取下一个字节
返回值:asc码,失败返回EOF
stream:打开的流
2.3.2 写
int fputc()
功能:向流里写入一个字节的数据
返回值:返回ACS码,失败返回EOF
c:字节的值
stream:流