_setmode
更新 : 2007 年 11 月
ファイルの変換モードを設定します。
int _setmode (
int fd,
int mode
);
パラメータ
fd
ファイル記述子。mode
新しい変換モード。
戻り値
正常に終了した場合は、直前の変換モードを返します。
この関数に無効なパラメータが渡されると、「パラメータの検証」に説明されているように、無効なパラメータ ハンドラが呼び出されます。実行の継続が許可された場合、この関数は errno を無効なファイル記述子を表す EBADF に設定するか、または _O_TEXT または _O_BINARY 以外の無効な mode 引数を表す EINVAL に設定します。
リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
_setmode 関数は、fd で指定されたファイルの変換モードを mode に設定します。このモードは、_O_TEXT または _O_BINARY という 2 つの記号定数のいずれかにする必要があります。_O_TEXT はテキスト (変換) モードです。CR-LF (キャリッジ リターンとライン フィード) の組み合わせは、入力時に 1 つのライン フィード文字に変換されます。ラインフィード文字は、出力では CR-LF の組み合わせに変換されます。_O_BINARY は、バイナリ (未変換) モードを設定します。この場合、変換は省略されます。
通常、_setmode 関数は、標準入力 (stdin) と標準出力 (stdout) の既定の変換モードを変更するときに使用しますが、すべてのファイルに対して使用できます。_setmode 関数をストリームのファイル記述子に対して使用する場合は、ストリームに対して入出力操作を実行する前に、_setmode 関数を呼び出します。
必要条件
ルーチン |
必須ヘッダー |
省略可能なヘッダー |
---|---|---|
_setmode |
<io.h> |
<fcntl.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// 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" );
}
'stdin' successfully changed to binary mode