Compartilhar via


_setmode

Define o modo de tradução do arquivo.

int _setmode (    int fd,    int mode  );

Parâmetros

  • fd
    Descritor de arquivo.

  • mode
    Novo modo de conversão.

Valor de retorno

Se bem-sucedido, retorna para o modo de conversão anterior.

Se parâmetros inválidos forem enviados a essa função, o manipulador de parâmetro inválido é chamado, como descrito em Validação do parâmetro. Se a execução puder continuar, essa função retorna –1 e define errno para EBADF, que indica um descritor de arquivo inválido ou EINVAL, que indica um argumento mode inválido.

Para obter mais informações sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist e _sys_nerr.

Comentários

A função _setmode define para mode o modo de conversão do arquivo fornecido por fd. Passar _O_TEXT como mode define o modo de texto (ou seja, convertido). Combinações CR-LF (Retorno de carro–alimentação de linha) são convertidas para um único caractere de alimentação de linha na entrada. Os caracteres de alimentação de linha são convertidos para combinações CR-LF na saída. Passar _O_BINARY define o modo binário (não traduzido), em que essas conversões são suprimidas.

Você também pode passar _O_U16TEXT, _O_U8TEXT ou _O_WTEXT para habilitar o modo Unicode, como demonstrado no segundo exemplo mais adiante neste documento. _setmode normalmente é usado para modificar o modo de conversão padrão de stdin e stdout, mas você pode usá-lo em qualquer arquivo. Se você aplicar _setmode ao descritor de arquivo para um fluxo, chame _setmode antes de realizar alguma operação de entrada ou saída no fluxo.

Aviso

Se você gravar dados em um fluxo de arquivo, limpe explicitamente o código usando fflush antes de usar _setmode para alterar o modo.Se você não limpar o código, pode ocorrer comportamento inesperado.Se você não tiver dados gravados no fluxo, não será preciso limpar o código.

Requisitos

Rotina

Cabeçalho necessário

Cabeçalhos opcionais

_setmode

<io.h>

<fcntl.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade.

Exemplo

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

Consulte também

Referência

Manipulação de arquivos

_creat, _wcreat

fopen, _wfopen

_open, _wopen

_set_fmode