Freigeben über


_set_fmode

Legt den Modus für Übersetzungs der Standarddatei für Datei-E/A-Vorgänge fest.

errno_t _set_fmode( 
   int mode 
);

Parameter

  • [in] mode
    Der übersetzungs Datei Modus erforderlich: _O_TEXT oder _O_BINARY.

Rückgabewert

Gibt (null) zurück, wenn erfolgreich, ein Fehlercode auf Fehler.Wenn mode nicht _O_TEXT oder _O_BINARY oder _O_WTEXTungültige Parameter ist, wird der Ereignishandler aufgerufen, wie in Parametervalidierungbeschrieben.Wenn die Ausführung ermöglicht wird, um fortzufahren, gibt diese Funktion errno legt diesen fest EINVAL und EINVALzurück.

Hinweise

Die Funktion wird die globale Variable _fmode fest.Diese Variable gibt den Modus für Übersetzungs der Standarddatei für die _open Datei-E/A-Vorgänge und _pipean.

_O_TEXT und _O_BINARY werden in Fcntl.h definiert.EINVAL wird in Errno.h definiert.

Anforderungen

Routine

Erforderlicher Header

Optionaler Header

_set_fmode

<stdlib.h>

<fcntl.h> und <errno.h>

Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.

Beispiel

// 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");
}
  

Siehe auch

Referenz

_fmode

_get_fmode

_setmode

Text und Binärdatei-Modus-Datei E/A