标准IO输入/输出库(缓存输入输出)
打开和关闭
#include
FILE* fopen(const char * path, const char * mode);/路径读取
#include
FILE * fdopen (int fd, const char *mode);/文件符读取
#include
int fclose (FILE *stream);/关闭文件
#define _GNU_SOURCE
#include
int fcloseall (void);/关闭所有文件
读取文件内柔
#include
int fgetc (FILE *stream);/读取一个字符
#include
int ungetc (int c, FILE *stream);/返回字符给流
#include
char * fgets (char *str, int size, FILE *stream);/一行读入
#include
size_t fread (void *buf, size_t size, size_t nr,FILE *stream);/读取二进制,用到ferror() 和 feof()两个函数看出错和是否到了文件末端
向文件写进内容
#include
int fputc (int c, FILE *stream);/写入一个字符
#include
int fputs (const char *str, FILE *stream);/写入字符串
#include
size_t fwrite (void *buf,size_t size,size_t nr,FILE *stream);/写入二进制内容,且可以是任意的数据结构
定位流
1.设置流位置
#include
int fseek (FILE *stream, long offset, int whence);
#include
int fsetpos (FILE *stream, fpos_t *pos);
#include
void rewind (FILE *stream);/回到开头
2.获取流位置
#include
long ftell (FILE *stream);
#include
int fgetpos (FILE *stream, fpos_t *pos);
清洗流
#include
int fflush (FILE *stream);
错误和文件结束
#include
int ferror (FILE *stream);
#include
int feof (FILE *stream);
#include
void clearerr (FILE *stream);
获得关联的文件描述符
#include
int fileno (FILE *stream);
控制缓冲
int setvbuf (FILE *stream, char *buf, int mode,size_t size);
mode:
IONBF ,不缓存
IOLBF 行缓存
IOFBF 全缓存