_setmode

Imposta la modalità di traduzione del file.

int _setmode (
   int fd,
   int mode 
);

Parametri

  • fd
    Descrittore del file.

  • mode
    nuova modalità di traduzione.

Valore restituito

Se l'operazione riesce, restituisce la modalità di traduzione precedente.

Se vengono passati parametri non validi a questa funzione, il gestore di non valido-parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, la funzione restituisce a 1 e set errno peruna o l'altra EBADF, che indica un descrittore di file non valido, o EINVAL, che indica un non valido mode argomento.

Per ulteriori informazioni su questi e altri codici restituiti, vedere _doserrno, errno, _sys_errlist e _sys_nerr.

Note

_setmode set di funzione a mode la modalità di traduzione del file fornito da fd.passaggio _O_TEXT come mode modalità di testo di insiemi (ovvero tradotto).I miscugli di un feed di ritorno-linea shopping (CR-LF) vengono convertiti in carattere di avanzamento riga in input.I caratteri di avanzamento riga vengono convertiti in combinazioni di CR-LF in output.passaggio _O_BINARY imposta la modalità (non tradotta) binaria, in cui queste conversioni eliminati.

È anche possibile passare _O_U16TEXT, _O_U8TEXT, o _O_WTEXT per consentire successivamente modalità Unicode, come illustrato nel secondo esempio in questo documento._setmode in genere utilizzato per modificare la modalità di traduzione predefinita di stdin e stdouttuttavia, è possibile utilizzarlo in qualsiasi file.Se si applica _setmode al descrittore del file per un flusso, chiamata _setmode prima di eseguire tutte le operazioni di input o di output sul flusso.

Nota di avvisoAttenzione

Se si scrive i dati in un flusso di file, in modo esplicito svuotare il codice tramite fflush prima di utilizzare _setmode per modificare la modalità.Se non scaricate e memorizzate il codice, è possibile ottenere un comportamento imprevisto.Se non è stato scritto i dati nel flusso, non è necessario svuotare il codice.

Requisiti

routine

Intestazione di associazione

intestazioni facoltative

_setmode

<io.h>

<fcntl.h>

Per ulteriori informazioni sulla compatibilità, vedere compatibilità.

Esempio

// 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;

} equivalente di .NET Framework

Vedere anche

Riferimenti

Gestione dei file

_create, _wcreat

fopen, _wfopen

_open, _wopen

_set_fmode