天天看点

标准I/O流和FILE对象常用函数

FIFE 指针: 有关于文件的信息结构体。

一 缓冲文件系统分类:

1. 全缓存: 打开一个文件是全缓冲。

2. 行缓存: 当流遇到一个终端的时候,是一个典型的行缓存。 当输入,输出遇到新行符,进行I/O操作。

3. 不缓存: 不对字符进行缓冲,例如 stderr;人机交互, 标准出错。

使用setbuf(), setvbuf() 可以更改缓存的类型。

二 fflush(FILE *fp)

强制刷新一个一流。改所有未写的数据都被似递至内核。

三 3个流(stream):

stdin 标准输入         0

stdout 标准输出      1

stderr 标准错误输出 2

四 函数

FILE *fopen(const char *path, const char *mode);  //打开

        mode  的值: r, r+,w, w+,a,a+; r: 读 w:写(不存在则建立) a:追加写(不存在则建立),+表示读,(注,可加b 表示二进制文件,

但是r,w,a之间,不能组合。)

int fclose(FILE *stream) 成功返回0,失败 EOF

freopen(const char *path, const char *mode, FIFE *steam);

int feof(FILE *stream) 判断文件是否结束 可用于二进制文件

EOF:出错或者结束

int putc(int c, FILE * stream)

int fputc(int c, FILE * stream)

int putchar(int c, FILE)

getc()/getchar()/putc()/putchar() 实行为宏 

fgetc()/fputc()实现为函数

int puts(const char *s);

int fputs(const char *s, FILE * stream;

        成功返回非负值,出错为EOF;