• 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变量也被设置为系统特定的错误代码。

  • 相关阅读:
    删库了一定要跑路吗?爱情 36 技之记忆重生!
    程序员和他的朋友们!
    聊起 BigTable,让你不再胆怯
    [Ant Design] Warning: Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?
    Git 常用命令
    Git 名词解释
    js中void 0和undefined的区别
    js运算符优先级
    搭建React项目(低配版)
    mac常用shell指令笔记
  • 原文地址:https://www.cnblogs.com/eternalmoonbeam/p/11613134.html
Copyright © 2020-2023  润新知