_setmode
ファイルの変換モードを設定します。
int _setmode (
int fd,
int mode
);
パラメーター
fd
ファイル記述子。mode
新しい変換モード。
戻り値
正常に終了した場合は、直前の変換モードを返します。
この関数に無効なパラメーターが渡されると無効なパラメーター ハンドラーが パラメーターの検証 に説明されているように開始されます。実行の継続が許可された場合関数の戻り値はいずれかの EBADF(無効なファイル記述子を示すまたは EINVAL 設定したりこの 1 errno を mode の無効な引数を示します。
リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
_setmode 関数は、fd で指定されたファイルの変換モードを mode に設定します。mode として _O_TEXT を渡すと、テキスト (変換) モードに設定されます。CR-LF (キャリッジ リターンとライン フィード) の組み合わせは、入力時に 1 つのライン フィード文字に変換されます。出力時には、LF 文字が CR-LF の組み合わせに変換されます。_O_BINARY を渡すと、この変換が抑制され、バイナリ (未変換) モードに設定されます。
第 2 の例で示すようにこのドキュメントの Unicode モードに _O_U16TEXT_O_U8TEXTまたは _O_WTEXT を後で渡すことができます。_setmode は通常stdin と stdout 既定の変換モードを変更するとファイルで使用できます。ストリームの入力または出力操作を実行する前にストリームのファイル記述子呼び出し _setmode に _setmode を適用します。
注意 |
---|
記述ファイルへのデータは fflush を使用してモードを変更するには _setmode を使用する前にコードを流しましたり明示的にフラッシュします。コードをフラッシュする予期しない動作が発生することがあります。ストリームにデータを自分でコードをフラッシュする必要はありません。 |
必要条件
ルーチン |
必須ヘッダー |
省略可能なヘッダー |
---|---|---|
_setmode |
<io.h> |
<fcntl.h> |
互換性の詳細については互換性 を参照してください。
使用例
// crt_setmode.c
// This program uses _setmode to change
// stdin from text mode to binary mode.
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
int main( void )
{
int result;
// Set "stdin" to have binary mode:
result = _setmode( _fileno( stdin ), _O_BINARY );
if( result == -1 )
perror( "Cannot set mode" );
else
printf( "'stdin' successfully changed to binary mode\n" );
}
// crt_setmodeunicode.c
// This program uses _setmode to change
// stdout to Unicode. Cyrillic and Ideographic
// characters will appear on the console (if
// your console font supports those character sets).
#include <fcntl.h>
#include <io.h>
#include <stdio.h>
int main(void) {
_setmode(_fileno(stdout), _O_U16TEXT);
wprintf(L"\x043a\x043e\x0448\x043a\x0430 \x65e5\x672c\x56fd\n");
return 0;