流I/O
这些功能的过程以不同的大小和布局,从单个字符到大型数据结构。 它们还提供缓冲区,这样可以提高性能。 流缓冲区的默认大小是 4K。 这些实例影响运行库实例创建的缓冲区,并对操作系统创建的缓冲区的效果。
流 I/O 实例
实例 |
使用 |
.NET framework 等效 |
---|---|---|
流广泛的错误指示器 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
关闭流 |
系统:: IO:: 流:: 关闭, 系统:: IO:: BinaryReader:: 关闭, 系统:: IO:: BinaryWriter:: 关闭, 系统:: IO:: TextReader:: 关闭, 系统:: IO:: TextWriter:: 关闭, 系统:: IO:: StringReader:: 关闭, 系统:: IO:: StringWriter:: 关闭, 系统:: IO:: StreamReader:: 关闭, 系统:: IO:: StreamWriter:: 关闭 |
|
关闭所有多余 stdin、 stdout和 stderr中打开流 |
系统:: IO:: 流:: 关闭, 系统:: IO:: BinaryReader:: 关闭, 系统:: IO:: BinaryWriter:: 关闭, 系统:: IO:: TextReader:: 关闭, 系统:: IO:: TextWriter:: 关闭, 系统:: IO:: StringReader:: 关闭, 系统:: IO:: StringWriter:: 关闭, 系统:: IO:: StreamReader:: 关闭, 系统:: IO:: StreamWriter:: 关闭 |
|
关联流与打开文件说明符 |
系统:: IO:: FileStream:: FileStream |
|
测试文件尾在流 |
||
测试流中的错误 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
刷新流或缓冲区存储设备 |
||
读取流 ( getc 和 getwc的功能版本的字符) |
||
读取 stdin ( getchar 和 getwchar的功能版本的字符) |
||
获取流位置指示器 |
||
读取流的字符串 |
系统:: IO:: StreamReader:: ReadLine, 系统:: IO:: TextReader:: ReadBlock |
|
获取文件描述符与流 |
||
刷新所有流或缓冲区存储设备 |
系统:: IO:: FileStream:: 刷新, 系统:: IO:: StreamWriter:: 刷新, 系统:: IO:: TextWriter:: 刷新, 系统:: IO:: BinaryWriter:: 刷新 |
|
打开流 |
||
fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l |
对流的格式写入数据 |
|
写入流 ( putc 和 putwc的功能版本中的字符) |
||
为 stdout ( putchar 和 putwchar的功能齐全的字符写入) |
||
对流的字符串写入 |
||
读取流的非格式化数据 |
||
重新 FILE 流指向新文件或计算机 |
||
fscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l |
读取流中设置了格式的数据 |
系统:: IO:: StreamReader:: ReadLine;请参见 Parse 方法,如 系统:: 二进制文件:: 分析。 |
该文件位置特定位置 |
||
设置流位置指示器 |
||
打开与该文件共享的流 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
获取当前文件位置 |
||
对流的编写无格式的数据项 |
||
读取流 ( fgetc 和 fgetwc宏版本的字符) |
||
读取 stdin ( fgetchar 和 fgetwchar宏版本的字符) |
||
返回同时打开文件的数目允许在流 I/O 级别。 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
读取 stdin的行 |
||
读取流的二进制 int |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
printf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_l |
为 stdout编写设置数据 |
|
对流 ( fputc 和 fputwc宏版本字符写入) |
||
为 stdout ( fputchar 和 fputwchar宏版本字符写入) |
||
对流的写入行 |
||
写入流的二进制 int |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
移动文件位置移至开始流 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
删除 tmpfile创建的临时文件 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
scanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l |
读取 stdin中设置了格式的数据 |
系统:: 控制台:: ReadLine;请参见 Parse 方法,如 系统:: 二进制文件:: 分析。 |
控制流缓冲区 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
设置同时打开文件数的最大数目。流 I/O 级别。 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
控制流缓冲区和缓冲区大小 |
不适用。 若要调用标准 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, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l |
向字符串写入设置数据 |
|
sscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l |
从字符串中读取的格式化数据 |
请参见 Parse 方法,如 系统:: 二进制文件:: 分析 |
生成在特定内容的临时文件名 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
创建临时文件 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
生成临时文件名 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
推后字符在流中 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
|
_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l |
向控制台中编写设置数据格式。 |
|
vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l |
对流的格式写入数据 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l |
为 stdout编写设置数据 |
|
_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l |
指定长度的格式写入缓冲区的数据。 |
不适用。 若要调用标准 C 函数,请使用 PInvoke。 有关更多信息,请参见 平台调用示例。 |
vsprintf, vswprintf, vsprintf_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)。 ,如果输入操作遇到文件,末尾的输出可能接着输入,而不干扰调用一个文件确定的功能。