Share via


流I/O

这些功能的过程以不同的大小和布局,从单个字符到大型数据结构。 它们还提供缓冲区,这样可以提高性能。 流缓冲区的默认大小是 4K。 这些实例影响运行库实例创建的缓冲区,并对操作系统创建的缓冲区的效果。

流 I/O 实例

实例

使用

.NET framework 等效

clearerrclearerr_s

流广泛的错误指示器

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

fclose

关闭流

系统:: IO:: 流:: 关闭系统:: IO:: BinaryReader:: 关闭系统:: IO:: BinaryWriter:: 关闭系统:: IO:: TextReader:: 关闭系统:: IO:: TextWriter:: 关闭系统:: IO:: StringReader:: 关闭系统:: IO:: StringWriter:: 关闭系统:: IO:: StreamReader:: 关闭系统:: IO:: StreamWriter:: 关闭

_fcloseall

关闭所有多余 stdin、 stdout和 stderr中打开流

系统:: IO:: 流:: 关闭系统:: IO:: BinaryReader:: 关闭系统:: IO:: BinaryWriter:: 关闭系统:: IO:: TextReader:: 关闭系统:: IO:: TextWriter:: 关闭系统:: IO:: StringReader:: 关闭系统:: IO:: StringWriter:: 关闭系统:: IO:: StreamReader:: 关闭系统:: IO:: StreamWriter:: 关闭

_fdopen, wfdopen

关联流与打开文件说明符

系统:: IO:: FileStream:: FileStream

feof

测试文件尾在流

系统:: IO:: FileStream:: 读取

ferror

测试流中的错误

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

fflush

刷新流或缓冲区存储设备

系统:: IO:: FileStream:: 刷新

fgetc, fgetwc

读取流 ( getc 和 getwc的功能版本的字符)

系统:: IO:: StreamReader:: 读取

_fgetchar, _fgetwchar

读取 stdin ( getchar 和 getwchar的功能版本的字符)

系统:: 控制台:: 读取

fgetpos

获取流位置指示器

系统:: IO:: FileStream:: 位置

fgets, fgetws

读取流的字符串

系统:: IO:: StreamReader:: ReadLine系统:: IO:: TextReader:: ReadBlock

_fileno

获取文件描述符与流

系统:: IO:: FileStream:: 处理

_flushall

刷新所有流或缓冲区存储设备

系统:: IO:: FileStream:: 刷新系统:: IO:: StreamWriter:: 刷新系统:: IO:: TextWriter:: 刷新系统:: IO:: BinaryWriter:: 刷新

fopen, _wfopenfopen_s, _wfopen_s

打开流

系统:: IO:: 文件:: 打开

fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l

对流的格式写入数据

系统:: IO:: StreamWriter:: 写入

fputc, fputwc

写入流 ( putc 和 putwc的功能版本中的字符)

系统:: IO:: StreamWriter:: 写入

_fputchar, _fputwchar

为 stdout ( putchar 和 putwchar的功能齐全的字符写入)

系统:: 控制台:: 写入

fputs, fputws

对流的字符串写入

系统:: IO:: StreamWriter:: 写入

fread

读取流的非格式化数据

系统:: IO:: FileStream:: 读取

freopen, _wfreopenfreopen_s, _wfreopen_s

重新 FILE 流指向新文件或计算机

系统:: IO:: 文件:: 打开

fscanf, fwscanffscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l

读取流中设置了格式的数据

系统:: IO:: StreamReader:: ReadLine;请参见 Parse 方法,如 系统:: 二进制文件:: 分析

fseek, _fseeki64

该文件位置特定位置

系统:: IO:: FileStream:: 位置系统:: IO:: FileStream:: 查找

fsetpos

设置流位置指示器

系统:: IO:: FileStream:: 位置

_fsopen, _wfsopen

打开与该文件共享的流

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

ftell, _ftelli64

获取当前文件位置

系统:: IO:: FileStream:: 位置

fwrite

对流的编写无格式的数据项

系统:: IO:: FileStream:: 写入

getc, getwc

读取流 ( fgetc 和 fgetwc宏版本的字符)

系统:: IO:: StreamReader:: 读取

getchar, getwchar

读取 stdin ( fgetchar 和 fgetwchar宏版本的字符)

系统:: 控制台:: 读取

_getmaxstdio

返回同时打开文件的数目允许在流 I/O 级别。

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

获取, getwsgets_s, _getws_s

读取 stdin的行

系统:: 控制台:: 读取

_getw

读取流的二进制 int

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

printf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

为 stdout编写设置数据

系统:: 控制台:: 写入

putc, putwc

对流 ( fputc 和 fputwc宏版本字符写入)

系统:: IO:: StreamWriter:: 写入

putchar, putwchar

为 stdout ( fputchar 和 fputwchar宏版本字符写入)

系统:: 控制台:: 写入

放置, _putws

对流的写入行

系统:: 控制台:: 写入

_putw

写入流的二进制 int

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

倒带

移动文件位置移至开始流

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

_rmtmp

删除 tmpfile创建的临时文件

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

scanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

读取 stdin中设置了格式的数据

系统:: 控制台:: ReadLine;请参见 Parse 方法,如 系统:: 二进制文件:: 分析

setbuf

控制流缓冲区

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

_setmaxstdio

设置同时打开文件数的最大数目。流 I/O 级别。

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

setvbuf

控制流缓冲区和缓冲区大小

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

_snprintf, _snwprintf_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

指定长度编写设置数据格式为字符串。

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

_snscanf, _snwscanf_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

读取一个指定长度的格式化数据从标准输入流的。

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

sprintf, swprintfsprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l

向字符串写入设置数据

系统:: 字符串:: 格式

sscanf, swscanfsscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l

从字符串中读取的格式化数据

请参见 Parse 方法,如 系统:: 二进制文件:: 分析

_tempnam, _wtempnam

生成在特定内容的临时文件名

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

tmpfiletmpfile_s

创建临时文件

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

tmpnam, _wtmpnamtmpnam_s, _wtmpnam_s

生成临时文件名

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

ungetc, ungetwc

推后字符在流中

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

_vcprintf, _vcwprintf_vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l

向控制台中编写设置数据格式。

系统:: 控制台:: 写入

vfprintf, vfwprintfvfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l

对流的格式写入数据

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

vprintf, vwprintfvprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l

为 stdout编写设置数据

系统:: 控制台:: 写入

_vsnprintf, _vsnwprintfvsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

指定长度的格式写入缓冲区的数据。

不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例

vsprintf, vswprintfvsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l

对缓冲区中编写设置数据

系统:: 字符串:: 格式

当程序开始执行时,启动代码自动打开多种流:标准输入 (指向 stdin),标准输出 (指向 stdout) 和标准错误 (指向 stderr)。 这些流处理到控制台 (键盘和屏幕) 默认情况下。 使用 freopen 重 stdin、 stdout或 stderr 定向到磁盘文件或计算机。

使用流实例中打开的默认文件缓冲区。 刷新 stdout 和 stderr 功能,只要它们是完整的; 或者,如果对字符设备编写,,在每个库调用之后。 如果程序异常方式停止,输出区域不能刷新,导致数据丢失。 使用 fflush 或 _flushall 确保缓冲区与已指定的文件或所有打开的缓冲区刷新对操作系统,在编写代码之前可以缓存数据写入磁盘。 对磁盘功能可确保在系统故障情况下,刷新缓冲区的内容不会丢失。

有两种方式提交缓冲区的内容写入磁盘:

  • 与设置全局的文件 COMMODE.OBJ 的链接创建标志。 默认设置全局标志是 n,对于此类情况, “不可更改”。

  • 设置架构标志传递给 c 和 fopen 或 _fdopen。

所有文件专门打开与 c 或 n 标志根据标志的行为,无论状态全局 commit/no 进行标记。

如果程序不显式关闭流,流自动关闭,当程序终止时。 但是,您应关闭流,当程序使用该对象完成时,为可以是开放式的一次是有限的流的数目。 有关此限制的信息,请参见 _setmaxstdio

输入只能遵循输出与干预直接调用 fflush 或对一个文件定位功能 (fseek、 fsetpos或 rewind)。 ,如果输入操作遇到文件,末尾的输出可能接着输入,而不干扰调用一个文件确定的功能。

请参见

参考

输入和输出

运行时实例按类别