Exportar (0) Imprimir
Expandir todo
and
div
eof
not
or
xor
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_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, tal y 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 estos 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. Pasar _O_BINARY establece el modo (sin traducir) binario, 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 sobre 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” cambió 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:
© 2014 Microsoft