标准C库函数:文件操作函数
seek:定位 append:追加
1.文件操作的标准库函数如下:fopen /fclose /fread /fwrite /fseek
fopen原型:FILE *fopen(const char *filenamem,const char*mode);
功能:打开文件
参数:filename:指定要打开的文件名,建议绝对路径 mode:
r
|
以只读方式打开文件,该文件必须存在。
|
r+
|
以读/写方式打开文件,该文件必须存在。
|
rb+
|
以读/写方式打开一个二进制文件,只允许读/写数据。
|
rt+
|
以读/写方式打开一个文本文件,允许读和写。
|
w
|
打开只写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则创建该文件。
|
w+
|
打开可读/写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则创建该文件。
|
a
|
以附加的方式打开只写文件。若文件不存在,则会创建该文件;如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(EOF 符保留)。
|
a+
|
以附加方式打开可读/写的文件。若文件不存在,则会创建该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(EOF符不保留)。
|
wb
|
以只写方式打开或新建一个二进制文件,只允许写数据。
|
wb+
|
以读/写方式打开或新建一个二进制文件,允许读和写。
|
wt+
|
以读/写方式打开或新建一个文本文件,允许读和写。
|
at+
|
以读/写方式打开一个文本文件,允许读或在文本末追加数据。
|
ab+
|
以读/写方式打开一个二进制文件,允许读或在文件末追加数据。
|
fwrite功能:向文件写入数据
参数:ptr:要传递保存向文件写入数据的内存的首地址
size:指定要写入的单个数据块的大小,例如:单个数据块大小=4字节
nmemb:指定要写入数据块的个数,例如:数据块的个数为3,结果总共写12字节
stream:传递文件指针
返回值:写入失败返回-1,写入成功返回实际的字节数
fread函数
unsigned long fread(void *buffer,unsigned long size,unsigned long count,FILE *stream);
功能:从文件读取数据,将硬盘上的数据读取到内存中来
buffer:指定保存读取数据的内存首地址
size:指定要读取的单个数据块大小
count:指定要读取数据块的个数
fp:文件指针
rewind函数
void rewind(FILE *fp)
功能:将文件指针定位到文件开头
fp:文件指针
fseek函数
函数功能:定位文件指针(定位游标)
原型 int fseek(FILE *fp,long offset,int fromwhere);
参数:
fp:文件指针,游标
offset:从文件的哪个地址开始
fromwhere:需要指定以下宏
SEEK_SET:文件头
SEEK_CUR:当前位置1
SEEK_END:文件尾