Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

_setmode

establece el archivo de modalidad de traducción.

int _setmode (
   int fd,
   int mode 
);

fd

Descriptor de archivo.

mode

nuevo de modalidad de traducción.

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.

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ón Precaució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.

rutina

Encabezado necesario

encabezados opcionales

_setmode

<io.h>

<fcntl.h>

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

// 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" );
}
“stdin” cambiado correctamente el modo binario
// 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;

Adiciones de comunidad

AGREGAR
Mostrar: