本节目录
C语言阶段(3)
打开流
FILE *fopen(const char *path, const char *mode);
头文件:
#include <stdio.h>
描述
函数 fopen 打开文件名为 path 指向的字符串的文件,将一个流与它关联。
参数 mode 指向一个字符串,以下列序列之一开始 (序列之后可以有附加的字符):
r 打开文本文件,用于读。流被定位于文件的开始。
r+ 打开文本文件,用于读写。流被定位于文件的开始。
w 将文件长度截断为零,或者创建文本文件,用于写。流被定位于文件的开始。
w+ 打开文件,用于读写。如果文件不存在就创建它,否则将截断它。流被定位于文件的开始。
a 打开文件,用于追加 (在文件尾写)。如果文件不存在就创建它。流被定位于文件的末尾。
a+ 打开文件,用于追加 (在文件尾写)。如果文件不存在就创建它。读文件的初始位置是文件的开始,但是输出总是被追加到文件的末尾。
字符串 mode 也可以包含字母 ``b’’ 作为最后一个字符,或者插入到上面提到的任何双字符的字符串的两个字符中间。
以追加方式打开文件 (以 a 作为 mode 的第一个字符) 将使得所有后续的对这个流的写操作发生在文件末尾,就好像在写之前调用了fseek(stream,0,SEEK_END); 一样。
返回值
如果成功执行了 fopen, fdopen 和 freopen 将返回一个指向文件对象 FILE 的指针。否则,将返回 NULL 并将设置全局变量 errno 的值来指示错误发生。
函数 fopen 也有可能失败并置 errno 为 open(2) 指定的值。
二进制读
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
头文件:
#include <stdio.h>
描述
函数fread()从由流指向的流中读取nmemb数据元素,每个大小字节长,并将它们存储在ptr给出的位置。
返回值
如果成功,fread()和fwrite()返回读取或写入的项的数量。此数字等于仅当大小为1时传输的