Compartilhar via


_setmode

Define o modo de conversão de arquivo.

int _setmode (
   int fd,
   int mode 
);

Parâmetros

  • fd
    Descritor de arquivo.

  • mode
    Novo modo de tradução.

Valor de retorno

Se bem-sucedida, retorna o modo de tradução anterior.

Se os parâmetros inválidos são passados para esta função, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, este – 1 retorna de função e conjuntos de errno a um EBADF, que indica um descritor de arquivo inválido, ou EINVAL, que indica uma inválido mode argumento.

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

Comentários

O _setmode função define como mode o modo de tradução do arquivo fornecido pelo fd.Passando _O_TEXT como mode define o texto (isto é, traduzido) modo.Return–line de carro, alimentação combinações (CR-LF) são transformadas em uma única linha que o caractere de avanço na entrada.Caracteres de alimentação de linha é traduzido em combinações de CR-LF na saída.Passando _O_BINARY modo de (não traduzido) binário conjuntos, na qual essas traduçõ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 posteriormente contida neste documento._setmodeé normalmente usado para modificar o modo de tradução padrão de stdin e stdout, mas você pode usá-lo em qualquer arquivo.Se você aplicar _setmode para o descritor de arquivo para um fluxo, chame _setmode antes de executar qualquer operação de entrada ou saída no fluxo.

Observação de cuidadoCuidado

Se você gravar dados em um fluxo de arquivos, explicitamente, libere o código usando fflush antes de usar _setmode para alterar o modo.Se você não liberar o código, você pode obter um comportamento inesperado.Se você não tiver gravado os dados no fluxo, você precisa liberar 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;

}.NET Framework equivalente

Consulte também

Referência

Manipulação de arquivos

_creat, _wcreat

fopen, _wfopen

Open, _wopen

_set_fmode