文件打开
/**
用于打开指定路径的文件,获取指向该文件的指针
/param path: 文件路径,如:"F:\Visual Stdio 2012\test.txt"
/param mode: 文件打开方式,例如:
"r" 以只读方式打开文件,该文件必须存在。
"w" 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
"w+" 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
"a" 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
"a+" 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。(原来的EOF符不保留)
"wb" 只写打开或新建一个二进制文件,只允许写数据。
"wb+" 读写打开或建立一个二进制文件,允许读和写。
"ab" 追加打开一个二进制文件,并在文件末尾写数据。
"ab+" 读写打开一个二进制文件,允许读,或在文件末追加数据。
/return 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中
*/
FILE * fopen(const char * path,const char * mode);
文件写入
/**
用于将一块内存区域中的数据写入到本地文本
/param buffer: 指向数据块的指针
/param size: 每个数据的大小,单位为Byte
/param count: 数据个数
/param stream: 文件指针
/return 返回值随着调用格式的不同而不同
1. 调用格式:fwrite(buf,sizeof(buf),1,fp); 成功写入返回值为1(即count)
2. 调用格式:fwrite(buf,1,sizeof(buf),fp); 成功写入则返回实际写入的数据个数(单位为Byte)
*/
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
注:
写完数据后要调用fclose()
关闭流,不关闭流的情况下,每次读或写数据后,文件指针都会指向下一个待写或者读数据位置的指针。
文件读取
/**
从一个文件流中读取数据
/param buffer: 指向数据块的指针
/param size: 每个数据的大小,单位为Byte
/param count: 数据个数
/param stream: 文件指针
/return 返回值随着调用格式的不同而不同
1. 调用格式:fread(buf,sizeof(buf),1,fp); 读取成功时:当读取的数据量正好是sizeof(buf)个Byte时,返回值为1(即count),否则返回值为0(读取数据量小于sizeof(buf))
2. 调用格式:fread(buf,1,sizeof(buf),fp); 读取成功返回值为实际读回的数据个数(单位为Byte)
*/
size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
文件关闭
/**
关闭文件
/param stream: 文件指针
/return 如果流成功关闭,则该方法返回零。如果失败,则返回 EOF。
*/
int fclose(FILE *stream);