_set_fmode_set_fmode

ファイル入出力操作の既定のファイル変換モードを設定します。Sets the default file translation mode for file I/O operations.

構文Syntax

errno_t _set_fmode(
   int mode
);

パラメーターParameters

modemode
必要なファイル変換モード: _O_TEXTまたは _O_BINARYThe file translation mode desired: _O_TEXT or _O_BINARY.

戻り値Return Value

正常終了した場合は 0 を、失敗した場合はエラー コードを返します。Returns zero if successful, an error code on failure. Mode_O_TEXTでない場合や _O_BINARYまたは _O_WTEXT場合は、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーが呼び出されます。If mode is not _O_TEXT or _O_BINARY or _O_WTEXT, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合、この関数はerrnoeinvalに設定し、 einvalを返します。If execution is allowed to continue, this function sets errno to EINVAL and returns EINVAL.

解説Remarks

この関数は、_fmode グローバル変数を設定します。The function sets the _fmode global variable. この変数は、ファイル i/o 操作 _openおよび _pipeの既定のファイル変換モードを指定します。This variable specifies the default file translation mode for the file I/O operations _open and _pipe.

_O_TEXT_O_BINARYは、Fcntl. h で定義されています。_O_TEXT and _O_BINARY are defined in Fcntl.h. EINVALは、Errno に定義されています。EINVAL is defined in Errno.h.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.

必要条件Requirements

ルーチンRoutine 必須ヘッダーRequired header オプション ヘッダーOptional header
_set_fmode_set_fmode <stdlib.h><stdlib.h> <fcntl.h>、<errno.h><fcntl.h>, <errno.h>

互換性について詳しくは、「 Compatibility」をご覧ください。For more compatibility information, see Compatibility.

Example

// crt_set_fmode.c
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>     /* for _O_TEXT and _O_BINARY */
#include <errno.h>     /* for EINVAL */
#include <sys\stat.h>  /* for _S_IWRITE */
#include <share.h>     /* for _SH_DENYNO */

int main()
{
   int mode, fd, ret;
   errno_t err;
   int buf[12] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
                   75, 76 };
   char * filename = "fmode.out";

   err = _get_fmode(&mode);
   if (err == EINVAL)
   {
      printf( "Invalid parameter: mode\n");
      return 1;
   }
   else
      printf( "Default Mode is %s\n", mode == _O_TEXT ? "text" :
              "binary");

   err = _set_fmode(_O_BINARY);
   if (err == EINVAL)
   {
      printf( "Invalid mode.\n");
      return 1;
   }

   if ( _sopen_s(&fd, filename, _O_RDWR | _O_CREAT, _SH_DENYNO, _S_IWRITE | _S_IREAD) != 0 )
   {
      printf( "Error opening the file %s\n", filename);
      return 1;
   }

   if (ret = _write(fd, buf, 12*sizeof(int)) < 12*sizeof(int))
   {
      printf( "Problem writing to the file %s.\n", filename);
      printf( "Number of bytes written: %d\n", ret);
   }

   if (_close(fd) != 0)
   {
      printf("Error closing the file %s. Error code %d.\n",
             filename, errno);
   }

   system("type fmode.out");
}
Default Mode is binary
A   B   C   D   E   F   G   H   I   J   K   L

関連項目See also

_fmode_fmode
_get_fmode_get_fmode
_setmode_setmode
テキストモードとバイナリモードのファイル入出力Text and Binary Mode File I/O