文本和二进制模式文件 I/OText and Binary Mode File I/O

文件 I/O 操作将在文本或二进制这两种转换模式之一中进行,具体取决于文件时在哪种模式下打开的。File I/O operations take place in one of two translation modes, text or binary, depending on the mode in which the file is opened. 数据文件通常在文本模式下处理。Data files are usually processed in text mode. 若要控制文件转换模式,可以:To control the file translation mode, one can:

  • 保留当前默认设置,并且仅在打开选定文件时指定替代模式。Retain the current default setting and specify the alternative mode only when you open selected files.

  • 使用函数 _set_fmode 更改新打开的文件的默认模式。Use the function _set_fmode to change the default mode for newly opened files. 使用 _get_fmode 查找当前默认模式。Use _get_fmode to find the current default mode. 初始默认设置为文本模式 (_O_TEXT)。The initial default setting is text mode (_O_TEXT).

  • 通过在程序中设置全局变量 _fmode 来直接更改默认转换模式。Change the default translation mode directly by setting the global variable _fmode in your program. 函数 _set_fmode 将设置此变量的值,不过也可以直接设置它。The function _set_fmode sets the value of this variable, but it can also be set directly.

    当调用一个文件打开函数(如 _openfopenfopen_sfreopenfreopen_s_fsopen_sopen_s)时,可通过指定函数 _set_fmode 的相应参数来替代 _fmode 的当前默认设置。When you call a file-open function such as _open, fopen, fopen_s, freopen, freopen_s, _fsopen or _sopen_s, you can override the current default setting of _fmode by specifying the appropriate argument to the function _set_fmode. 默认情况下,stdinstdoutstderr 流始终在文本模式中打开;在打开这些文件中的任一文件时,也可以重写该默认值。The stdin, stdout, and stderr streams always open in text mode by default; you can also override this default when opening any of these files. 使用 _setmode 可在文件打开后利用文件说明符更改转换模式。Use _setmode to change the translation mode using the file descriptor after the file is open.

另请参阅See Also

输入和输出 Input and Output
按类别分的运行时例程Run-Time Routines by Category