fopen
2019-10-08 08:46:46来源:博客园 阅读 ()
fopen
来源:http://www.cplusplus.com/reference/cstdio/fopen/
定义: FILE * fopen ( const char * filename, const char * mode );
简介:
打开在参数file name中指定其名称的文件,并将其与一个流相关联,该流可以在以后的操作中由返回的文件指针标识。
流上允许的操作以及如何执行这些操作由mode参数定义。
如果已知返回的流不引用交互设备,则默认情况下会对其进行完全缓冲(请参阅setbuf)。
返回的指针可以通过调用fclose或freopen与文件解除关联。所有打开的文件在正常程序终止时自动关闭。
运行环境至少支持同时打开fopen_max文件。
参数:
filename
包含要打开的文件名的C字符串。
其值应遵循运行环境的文件名规范,并可以包括路径(如果系统支持)。
mode
r |
w |
a |
r+ |
w+ |
a+ |
读取:打开文件进行输入操作。文件必须存在。 |
写入:为输出操作创建一个空文件。如果已经存在同名的文件,则丢弃其内容,并将文件视为新的空文件。 |
追加:打开文件,在文件末尾输出。输出操作总是在文件末尾写入数据,并将其展开。重新定位操作(fseek、fsetpos、rewind)将被忽略。如果文件不存在,则创建该文件。 |
读取/更新:打开文件进行更新(输入和输出)。文件必须存在。 |
写入/更新:创建一个空文件并打开它进行更新(输入和输出)。如果同名文件已存在,则将丢弃其内容,并将该文件视为新的空文件。 |
追加/更新:打开一个文件进行更新(包括输入和输出),所有输出操作在文件末尾写入数据。重新定位操作(fseek、fsetpos、rewind)会影响下一个输入操作,但输出操作会将位置移回文件末尾。如果文件不存在,则创建该文件。 |
使用上面的模式说明符,文件将作为文本文件打开。为了将文件作为二进制文件打开,模式字符串中必须包含“B”字符。这个额外的“b”字符可以附加在字符串的末尾(从而形成以下复合模式:“rb”、“wb”、“ab”、“r+b”、“w+b”、“a+b”),也可以插入字母和混合模式的“+”符号(“rb+”、“wb+”、“ab+”)之间。
新的C标准(不是C++的一部分)增加了一个新的标准“x”(“x”),可以附加到任何“W”说明符(形成“0”、“0”、“w”或“W”+“+”)。如果文件存在,此子参数将强制函数失败,而不是重写它。
如果序列后面有其他字符,则行为取决于库实现:有些实现可能会忽略其他字符,以便接受额外的“t”(有时用于显式声明文本文件)。
在某些库实现中,使用更新模式打开或创建文本文件可能会将流视为二进制文件。
文本文件是包含文本行序列的文件。根据应用程序运行的环境,在文本模式下的输入/输出操作中可能会发生一些特殊字符转换,以使它们适应系统特定的文本文件格式。虽然在某些环境中不存在转换,并且文本文件和二进制文件都以相同的方式处理,但是使用适当的模式提高了可移植性。
对于同时允许输入和输出操作的打开更新的文件(包括“+”符号的文件),在执行写入操作之后的读取操作之前,应刷新(fflush)流或重新定位(fseek、fsetpos、rewind)。在读取操作之后的写入操作之前(当该操作未到达文件结尾时),流应重新定位(fseek、fsetpos、rewind)。
返回值:
如果文件已成功打开,则函数返回指向文件对象的指针,该对象可用于在以后的操作中标识流。
否则,返回空指针。
在大多数库实现中,Erro变量也被设置为系统特定的错误代码。
原文链接:https://www.cnblogs.com/eternalmoonbeam/p/11613134.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:长乐国庆集训Day2
- 多项式方程的输出 2019-10-16
- 洛谷P3961 图的遍历 2019-05-24
- C-fopen,fwrite,fread,fseek,fgets,popen,access笔记 2018-12-04
- C++ volatile关键字(转) 2018-11-22
- 华为笔试——C++括号匹配 2018-09-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash