文件IO(1)
(一) C标准库文件IO函数
fopen函数
-
函数作用:
打开一个文件用于读,写,读写 -
函数原型:
#include <stdio.h>
FILE *fopen(const char *path, const char *mode);
- 参数:
path :要打开的文件路径和文件名
mode :打开文件的方式,取值如下
值 | 可用操作 | 文件不存在 / 存在 | 打开时流定位于 |
---|---|---|---|
r | 读 | 打开失败/不截断 | 文件开始 |
r+ | 读写 | 打开失败/ 不截断 | 文件开始 |
w | 写 | 创建 / 截断 | 文件开始 |
w+ | 读写 | 创建 / 截断 | 文件开始 |
a | 写 | 创建/不截断 | 文件末尾 |
a+ | 读写 | 创建/不截断 | 文件末尾 |
- 返回值:
成功 返回指向文件对象FILE的指针,失败返回NULL,并设置errno指示错误。
fclose函数:
-
函数作用:
关闭已打开的文件 -
函数原型:
#include <stdio.h>
int fclose(FILE *stream);
-
参数:
stream:指向文件对象FILE的指针 -
返回值:
成功返回 0 ,失败返回EOF 并设置errno 指示错误
fseek函数:
- 函数作用:
移动文件内部指向文件内容的指针,比如我打开一个文件读了10个字符,我想跳到第20个字符的地方继续读取,我就可以用fseek函数跳转,
函数原型:
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
- 参数:
stream:指向文件对象FILE的指针
offset:偏移量,相对于第三个参数而言
whence:参照点,取值如下
取值 | 描述 |
---|---|
SEEK_SET | 文件开头 |
SEEK_CUR | 当前位置 |
SEEK_END | 文件末尾 |
- 返回值:
成功返回0,失败返回非0 并设置errno指示错误
ftell函数:
-
函数作用:
用于获取文件内容指针的当前位置, -
函数原型:
#include <stdio.h>
long ftell(FILE *stream);
-
参数:
指向文件对象FILE的指针 -
返回值:
返回文件内容位置指针的位置相对于文件开头偏移的字节数