打开文件
FILE *fopen(const char * restrict filename, const char * restrict mode);
- fopen函数的第一个参数是含有要打开文件名的字符串.("文件名"可能包含关于文件位置的信息,如驱动器和路径)
- 第二个参数是"模式字符串",它用来指定打算对文件执行的操作.例如,字符串"r"表明将从文件读入数据,但是不会向文件写入数据
模式
用于文本文件的模式字符串
- "r" 打开文件用于读
- "w" 打开文件用于写(文件不需要存在)
- "a" 打开文件用于追加(文件不需要存在)
- "r+" 打开文件用于读和写,从文件头开始
- "w+" 打开文件用于读和写(如果文件存在就截去)
- "a+" 打开文件用于读和写(如果文件存在就追加)
用于二进制文件的模式字符串
- "rb" 打开文件用于读
- "wb" 打开文件用于写(文件不需要存在)
- "ab" 打开文件用于追加(文件不需要存在)
- "rb+" 打开文件用于读和写,从文件头开始
- "wb+" 打开文件用于读和写(如果文件存在就截去)
- "ab+" 打开文件用于读和写(如果文件存在就追加)
关闭文件
int fclose(FILE *stream);
fclose函数允许程序关闭不再使用的文件.fclose函数的参数必须是文件指针,此指针来自fopen函数或freopen函数的调用.如果成功关闭了文件,fclose函数会返回0;否则,将返回错误代码EOF(在<stdio.h>中定义的宏)
临时文件
FILE *tmpfile(void);
char *tmpnam(char *s);
tmpfile函数创建一个临时文件,该文件将一直存在,除非关闭它或程序终止
tmpnam函数为临时文件产生名字
文件定位
int fgetpos(FILE * restrict stream, fops_t * restrict * pos);
int fseek(FILE *stream, long int offset, int whence);
int fsetpos(FILE *stream, const fpos_t *pos);
long int ftell(FILE *stream);
void rewind(FILE *stream);
fseek函数改变与第一个参数(即文件指针)相关的文件位置.第三个参数说明新位置是根据文件的起始处,当前位置还是文件末尾计算的.第二个参数是个(可能为负的)字节计数.
ftell函数以长整型返回当前文件位置.
rewind函数会把文件位置设置在起始处.
其他文件操作
int remove(const char *filename);
int rename(const char *old, const char *new);
remove函数删除文件
rename函数改变文件名字