Linux C文件操作函数
C 文件操作函数学习笔记
文件打开模式一览
模式 | 含义 | 说明 |
---|---|---|
r | 只读 | 文件必须存在 |
w | 只写 | 文件存在则清空,不存在则创建 |
a | 追加写入 | 文件存在则追加,不存在则创建 |
r+ | 可读可写 | 文件必须存在 |
w+ | 可读可写 | 文件存在则清空,不存在则创建 |
a+ | 可读可追加写入 | 文件存在追加,不存在则创建 |
rb | 二进制读取 | 文件必须存在 |
wb | 二进制写入 | 文件存在清空,不存在创建 |
函数详解
fscanf
int fscanf(FILE *__restrict __stream, const char *__restrict __format, ...);
-
功能:格式化从文件中读取内容
-
参数:
-
__stream
: 文件指针 -
__format
: 格式控制字符串(如"%d %s"
) -
...
: 用于存放读取的变量地址
-
-
返回值:
-
成功:返回读取的项数
-
匹配失败:返回 0
-
出错/结束:返回
EOF
-
fputs
int fputs(const char *__restrict __s, FILE *__restrict __stream);
-
功能:将字符串写入文件
-
参数:
-
__s
: 要写入的字符串 -
__stream
: 文件指针
-
-
返回值:
-
成功:返回非负值
-
失败:返回
EOF
-
fputc
int fputc(int __c, FILE *__stream);
-
功能:写入一个字符到文件
-
参数:
-
__c
: 写入的字符(作为 ASCII 值) -
__stream
: 文件指针
-
-
返回值:
-
成功:返回写入的字符
-
失败:返回
EOF
-
fprintf
int fprintf(FILE *__restrict __stream, const char *__restrict __fmt, ...);
-
功能:格式化输出到文件
-
参数:
-
__stream
: 文件指针 -
__fmt
: 格式化字符串(如"%d\n"
) -
...
: 参数列表
-
-
返回值:
-
成功:写入字符数(不含终止符)
-
失败:
EOF
-
fgets
char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream);
-
功能:从文件读取一行
-
参数:
-
__s
: 字符数组(缓冲区) -
__n
: 最大读取长度(包含\0
) -
__stream
: 文件指针
-
-
返回值:
-
成功:返回
__s
-
失败或 EOF:返回
NULL
-
常用于
while(fgets(...))
循环读取文件
fgetc
int fgetc(FILE *__stream);
-
功能:从文件读取一个字符
-
参数:
__stream
: 文件指针
-
返回值:
-
成功:返回读取字符(作为 int)
-
失败或 EOF:返回
EOF
-
fclose
int fclose(FILE *__stream);
-
功能:关闭文件
-
参数:
__stream
: 文件指针
-
返回值:
-
成功:返回 0
-
失败:返回
EOF
-
提示
-
文件操作完一定要
fclose
,避免内存泄漏或数据未写入磁盘。 -
fscanf/fgets/fgetc
为读取相关函数,使用时注意文件打开模式为读。 -
fputs/fputc/fprintf
为写入相关函数,注意文件必须是写模式或追加模式。 -
判断是否读取结束可使用:
if (feof(fp)) { /* EOF 处理 */ }