一般用于访问普通文件,如文本文档,音乐,图片等
fopen:打开文件
#include<stdio.h>
FILE *fopen(const char *path, const char *mode);
第二个参数是字符串,要写“”
path:文件路径
mode:打开方式
r:只读方式打开,光标在开头
r+:可读可写,光标在开头
w:只写,不存在则创建,存在则清空,光标在开头
w+:可读可写,不存在则创建,存在则清空,光标在开头
a:只写并追加,不存在则创建,光标在末尾
a+:可读可写并追加,不存在则创建,如果是读操作光标在开头,如果是写操作则光标在末尾
返回值:
成功:返回文件指针(文件流指针)
失败:返回NULL
0:stdin 标准输入默认是键盘
1:stdout 标准输出 默认是显示器
2:stderr 标准出错 默认是显示器 错误信息存储在宏变量errno中 errno 返回错误信息在errno.h中的代号,可以用strerror函数输出具体的错误信息
fclose:关闭文件
#include<stdio.h>
int fclose(FILE *strcam)
strcam:文件流指针
返回值:
成功:0
失败:EOF(-1)
fread:读取文件
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr:将要装载数据的缓冲区
szie:每一块数据的字节数
nmemb:尝试读取的块儿数
stream:文件指针
返回值
成功:返回已经读取到的块儿数(不够一块儿的不算)
失败:小于想读取的块儿数或者0
fwrite:写入文件
#include <stdio.h>
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
ptr:数据缓冲区
size:每一块儿的字节数
nmemb:想写入文件的块儿数
stream:文件指针
返回值:
成功:已经写入的块儿数
失败:小于想写入的块儿数或者0
fseek:光标偏移
#include<stdio.h>
int fseek(FILE *stream, long offset, int whence);
stream:文件指针
offset:需要偏移的字节数
whence:基准点
SEEK_SET:文件开头+offset为新读写位置
SEEK_CUR:目前读写位置+offset为新读写位置
SEEK_END:文件结尾+offset为新读写位置
返回值:
成功:0
失败:-1
ftell:获取当前位置距离开头的偏移量
#include<stdio.h>
long ftell(FILE *stream);
stream:文件指针
返回值:
成功:距离文件开头的字节数
失败:-1
rewind:重置光标位置
将光标位置重置到文件的开头
void rewind(FILE *stream);
stream:文件指针