Compartir a través de


_setmode

establece el archivo de modalidad de traducción.

int _setmode (
   int fd,
   int mode 
);

Parámetros

  • fd
    Descriptor de archivo.

  • mode
    nuevo de modalidad de traducción.

Valor devuelto

Si finaliza correctamente, devuelve el de modalidad de traducción anterior.

Si los parámetros no válidos se pasan a esta función, se invoca el controlador de inválido-parámetro, como se describe en Validación de parámetros.Si la ejecución puede continuar, esta función devuelve – 1 y establece errno a cualquier EBADF, que indica el descriptor de archivo no válido, o a EINVAL, que indica un argumento no válido de mode .

Para obtener más información sobre éstos y otros códigos de retorno, vea _doserrno, errno, _sys_errlist, y _sys_nerr.

Comentarios

La función de _setmode establecida en mode el de modalidad de traducción del archivo especificado por fd.Pasando _O_TEXT como conjuntos de mode text (es decir, traducido) el modo.Las combinaciones de fuentes de la retorno-línea de carro (CR-LF) se convierten en un único carácter de salto de línea de entrada.Los caracteres de salto de línea se convierten en combinaciones de CR-LF en la salida.Pasando el modo (sin traducir) binario de los conjuntos de _O_BINARY , donde se suprimen estas conversiones.

También puede pasar _O_U16TEXT, _O_U8TEXT, o _O_WTEXT para habilitar el modo de Unicode, como se muestra en el segundo ejemplo más adelante en este documento._setmode se utiliza normalmente para modificar el valor predeterminado de modalidad de traducción de stdin y de stdout, pero puede utilizarlo en cualquier archivo.Si se solicita _setmode descriptor de archivo una secuencia, llamada _setmode antes de realizar cualquier operación de entrada o salida en la secuencia.

Nota de precauciónPrecaución

Si escribe datos en una secuencia de archivo, explícitamente vacíe el código mediante fflush antes de utilizar _setmode para cambiar el modo.Si no vacía el código, podría obtener un comportamiento inesperado.Si no se escribe datos en la secuencia, no tiene que vaciar el código.

Requisitos

rutina

Encabezado necesario

encabezados opcionales

_setmode

<io.h>

<fcntl.h>

Para obtener más información de compatibilidad, vea compatibilidad.

Ejemplo

// 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 de .NET Framework

Vea también

Referencia

El control de archivo

_creat, _wcreat

fopen, _wfopen

_open, _wopen

_set_fmode