c标准io---带缓存的io
优势:
带缓存(合并系统调用)
缺点:
实时性低
缓存的类型:
行缓存:stdin stdout(缓存区是有大小)
全缓存:文件
无缓存:stderr
1.流
打开文件的标识
2.FILE类型
结构体类型:
文件描述符
缓存区的地址
缓存的大小
出错标识
3.流的打开
fopen(3);
errno全局变量
定义的宏:
/usr/include/asm-generic/errno-base.h
/usr/include/asm-generic/errno.h
strerror(3);
perror(3);
4.流的操作(读写)
<1>字节
fgetc();/fputc();
getchar();/putchar();
getc();/putc();
<2>按行
fgets();/fputs();
gets();/puts();
<3>二进制
fread();/fwirte();
<4>格式化
fscanf();/fprintf();
scanf();/printf();
5.流的定位
fseek();
ftell();
rewind();
6.流的关闭
fclose(3);
7.流的刷新
fflush(3);
8.临时文件
tmpnam();//了解
tmpfile();//掌握
9.io效率
讨论的不是缓存大小的影响
标准io在调用fopen()时就已经创建缓存区
优先选择:
fgets();/fputs();
fread();/fwrite();
10.
setbuf();
setvbuf();
作业:
将一个文件的第5行的最开始加入一个字符串"uplooking"