_setmode

更新 : 2011 年 4 月

ファイルの変換モードを設定します。

int _setmode (
   int fd,
   int mode 
);

パラメーター

  • fd
    ファイル記述子。

  • mode
    新しい変換モード。

戻り値

正常に終了した場合は、直前の変換モードを返します。

この関数に無効なパラメーターが渡される場合、無効なパラメーター ハンドラーの説明に従って呼び出されますパラメーターの検証。 続行するには、この関数を返します-1 およびセットの実行が許可されている場合errnoをEBADFは、無効なファイル記述子を示しますまたはEINVAL、無効なを示しますmode引数。

リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。

解説

_setmode 関数は、fd で指定されたファイルの変換モードを mode に設定します。 mode として _O_TEXT を渡すと、テキスト (変換) モードに設定されます。 CR-LF (キャリッジ リターンとライン フィード) の組み合わせは、入力時に 1 つのライン フィード文字に変換されます。 出力時には、LF 文字が CR-LF の組み合わせに変換されます。 _O_BINARY を渡すと、この変換が抑制され、バイナリ (未変換) モードに設定されます。

渡すこともできます_O_U16TEXT、_O_U8TEXT、または _O_WTEXTこのドキュメントで後に 2 番目の例で示したように Unicode モードが有効にします。 _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;

}.NET Framework の相当

参照

参照

ファイル処理

_creat、_wcreat

fopen、_wfopen

_open、_wopen

_set_fmode

履歴の変更

日付

History

理由

2011 年 4 月

モードを変更する前に、ストリームをフラッシュについて警告を追加します。

情報の拡充