C语言stdio头文件(stdio.h)中fopen函数的用法及代码示例。
用法:
FILE * fopen ( const char * filename, const char * mode );
打开文件
流中允许的操作以及执行这些操作的方式由模式参数。
返回的流是完全缓冲默认情况下,如果已知不引用交互式设备(请参见setbuf)。
可以通过调用将返回的指针与文件解除关联fclose或者freopen。在正常程序终止时,所有打开的文件都会自动关闭。
运行环境至少支持FOPEN_MAX文件同时打开。
参数
- filename
- C字符串,包含要打开的文件的名称。
其值应遵循运行环境的文件名规范,并且可以包含路径(如果系统支持)。 - mode
- 包含文件访问模式的C字符串。有可能:
随着模式文件上方的说明符以文本文件。为了打开一个文件二进制文件, 一种"b"字符必须包含在模式细绳。这个额外的"b"字符可以附加在字符串的末尾(因此采用以下复合模式:"rb","wb","ab","r+b","w+b","a+b")或插入字母和字符之间。"+"混合模式("rb+","wb+","ab+")的符号。"r" 读:打开文件进行输入操作。该文件必须存在。 "w" 写:创建一个空文件进行输出操作。如果已经存在同名文件,则将其内容丢弃,并将该文件视为新的空文件。 "a" 附加:打开文件以在文件末尾输出。输出操作始终将数据写入文件的末尾,然后对其进行扩展。重新定位操作(fseek,fsetpos,rewind)将被忽略。如果文件不存在,则创建该文件。 "r+" 读取/更新:打开文件进行更新(用于输入和输出)。该文件必须存在。 "w+" 写入/更新:创建一个空文件并将其打开以进行更新(用于输入和输出)。如果已经存在同名文件,则将其内容丢弃,并将该文件视为新的空文件。 "a+" 追加/更新:打开一个文件进行更新(用于输入和输出),所有输出操作均在文件末尾写入数据。重新定位操作(fseek,fsetpos,rewind)会影响下一个输入操作,但输出操作会将位置移回文件末尾。如果文件不存在,则创建该文件。
新的C标准(不属于C++的C2011)添加了新的标准子说明符("x"),可以附加到任何"w"说明符(形成"wx","wbx","w+x"或者"w+bx"/"wb+x")。如果文件存在,此子说明符将强制该函数失败,而不是覆盖它。
如果遵循此顺序,则其他行为取决于库的实现:某些实现可能会忽略其他字符,例如,"t"(有时用于明确声明一个文本文件)被接受。
在某些库实现中,以更新模式打开或创建文本文件可能会将流视为二进制文件。
文字档是包含文本行序列的文件。根据应用程序运行的环境,某些特殊字符转换可能会在文字模式使它们适应system-specific文本文件格式。尽管在某些环境下不会发生转换,并且两者都发生文字档和二进制文件以相同的方式处理,使用适当的模式可提高可移植性。
对于打开以供更新的文件(其中包括"+"符号),同时允许输入和输出操作,则应刷新流(fflush)或重新定位(fseek,fsetpos,rewind)之后再进行写操作之后的阅读操作。流应重新定位(fseek,fsetpos,rewind),然后再执行读取操作(无论该操作未到达文件末尾)。
返回值
如果文件成功打开,该函数将返回一个指向FILE可用于在将来的操作中标识流的对象。否则,将返回空指针。
在大多数库实现中,errno变量也会在失败时设置为system-specific错误代码。
示例
/* fopen example */
#include <stdio.h>
int main ()
{
FILE * pFile;
pFile = fopen ("myfile.txt","w");
if (pFile!=NULL)
{
fputs ("fopen example",pFile);
fclose (pFile);
}
return 0;
}
相关用法
- C语言 remove用法及代码示例
- C语言 rename用法及代码示例
- C语言 tmpfile用法及代码示例
- C语言 tmpnam用法及代码示例
- C语言 fclose用法及代码示例
- C语言 fflush用法及代码示例
- C语言 freopen用法及代码示例
- C语言 setbuf用法及代码示例
- C语言 setvbuf用法及代码示例
- C语言 fprintf用法及代码示例
- C语言 fscanf用法及代码示例
- C语言 printf用法及代码示例
- C语言 scanf用法及代码示例
- C语言 snprintf用法及代码示例
- C语言 sprintf用法及代码示例
- C语言 sscanf用法及代码示例
- C语言 vfprintf用法及代码示例
- C语言 vfscanf用法及代码示例
- C语言 vprintf用法及代码示例
- C语言 vscanf用法及代码示例
- C语言 vsnprintf用法及代码示例
- C语言 vsprintf用法及代码示例
- C语言 vsscanf用法及代码示例
- C语言 fgetc用法及代码示例
- C语言 fgets用法及代码示例
- C语言 fputc用法及代码示例
- C语言 fputs用法及代码示例
- C语言 getc用法及代码示例
- C语言 getchar用法及代码示例
- C语言 gets用法及代码示例
- C语言 putc用法及代码示例
- C语言 putchar用法及代码示例
- C语言 puts用法及代码示例
- C语言 ungetc用法及代码示例
- C语言 fread用法及代码示例
- C语言 fwrite用法及代码示例
- C语言 fgetpos用法及代码示例
- C语言 fseek用法及代码示例
- C语言 fsetpos用法及代码示例
- C语言 ftell用法及代码示例
- C语言 rewind用法及代码示例
- C语言 clearerr用法及代码示例
- C语言 feof用法及代码示例
- C语言 ferror用法及代码示例
- C语言 perror用法及代码示例
注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C fopen function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。