_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.
Cuidado |
---|
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;