Unix高级编程之标准IO

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"

有时候,不小心知道了一些事,才发现自己所在乎的事是那么可笑。
原文地址:https://www.cnblogs.com/axjlxy/p/5859935.html