C语言 freopen用法及代码示例 您所在的位置:网站首页 c语言fsetpos C语言 freopen用法及代码示例

C语言 freopen用法及代码示例

2024-07-12 06:43| 来源: 网络整理| 查看: 265

C语言stdio头文件(stdio.h)中freopen函数的用法及代码示例。

用法:

FILE * freopen ( const char * filename, const char * mode, FILE * stream );重新打开具有不同文件或模式的流 重用流打开由指定的文件文档名称或更改其访问权限模式。

如果是新的文档名称指定后,该函数首先尝试关闭已经与之关联的任何文件流(第三个参数)并将其取消关联。然后,无论该流是否成功关闭,freopen打开由指定的文件文档名称并将其与流正如fopen会使用指定的模式。

如果文档名称是一个空指针,该函数尝试更改模式流。尽管允许特定的库实现来限制所允许的更改,以及在哪种情况下。

这个错误指示和有效指标会自动清除(好像clearerr被称为)。

此函数对于重定向预定义的流特别有用,例如stdin,stdout和stderr到特定文件(请参见下面的示例)。

参数 filename C字符串,包含要打开的文件的名称。其值应遵循运行环境的文件名规范,并且可以包含路径(如果系统支持)。如果此参数为空指针,则该函数尝试更改该模式的模式。流,就好像使用了当前与该流关联的文件名一样。 mode 包含文件访问模式的C字符串。有可能: "r"读:打开文件进行输入操作。该文件必须存在。 "w"写:创建一个空文件进行输出操作。如果已经存在同名文件,则将其内容丢弃,并将该文件视为新的空文件。 "a"附加:打开文件以在文件末尾输出。输出操作始终将数据写入文件的末尾,然后对其进行扩展。重新定位操作(fseek,fsetpos,rewind)将被忽略。如果文件不存在,则创建该文件。 "r+"读取/更新:打开文件进行更新(用于输入和输出)。该文件必须存在。 "w+"写入/更新:创建一个空文件并将其打开以进行更新(用于输入和输出)。如果已经存在同名文件,则将其内容丢弃,并将该文件视为新的空文件。 "a+"追加/更新:打开一个文件进行更新(用于输入和输出),所有输出操作均在文件末尾写入数据。重新定位操作(fseek,fsetpos,rewind)会影响下一个输入操作,但输出操作会将位置移回文件末尾。如果文件不存在,则创建该文件。 随着模式文件上方的说明符以文本文件。为了打开一个文件二进制文件, 一种"b"字符必须包含在模式细绳。这个额外的"b"字符可以附加在字符串的末尾(因此采用以下复合模式:"rb","wb","ab","r+b","w+b","a+b")或插入字母和字符之间。"+"混合模式("rb+","wb+","ab+")的符号。

新的C标准(不属于C++的C2011)添加了新的标准子说明符("x"),可以附加到任何"w"说明符(形成"wx","wbx","w+x"或者"w+bx"/"wb+x")。如果文件存在,此子说明符将强制该函数失败,而不是覆盖它。

如果遵循此顺序,则其他行为取决于库的实现:某些实现可能会忽略其他字符,例如,"t"(有时用于明确声明一个文本文件)被接受。

在某些库实现中,以更新模式打开或创建文本文件可能会将流视为二进制文件。

stream 指向一个的指针FILE标识要重新打开的流的对象。 返回值如果文件成功重新打开,该函数将返回作为参数传递的指针流,可用于识别重新打开的流。否则,将返回空指针。在大多数库实现中,errno变量也会在失败时设置为system-specific错误代码。 示例 /* freopen example: redirecting stdout */ #include int main () { freopen ("myfile.txt","w",stdout); printf ("This sentence is redirected to a file."); fclose (stdout); return 0; }

此示例代码将通常会转到标准输出的输出重定向到一个名为的文件myfile.txt,该程序执行后包含:

This sentence is redirected to a file.


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有