_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.
Attenzione |
---|
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;