_setmode

Устанавливает режим преобразования файла.

int _setmode (
   int fd,
   int mode 
);

Параметры

  • fd
    Идентификатор файла.

  • mode
    Новый режим преобразования.

Возвращаемое значение

В случае успеха возвращает предыдущий режим преобразования.

Если недопустимые параметры передаются в эту функцию, то вызывается обработчик недопустимый-параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то эта функция возвращает 1 и устанавливает errno к этому EBADF, которая обозначает недопустимый идентификатор файла или EINVAL, которая указывает недопустимое mode аргумент.

Дополнительные сведения об этих и других кодах возврата см. _doserrno, errno, _sys_errlist и _sys_nerr.

Заметки

_setmode функции наборов mode режим преобразования файла данного by fd.Передача _O_TEXT Вставить как mode режим текст наборов (то есть, преобразуется).Сочетание канал очереди возврата экипажа (CR-LF) преобразуются в символы канала одной линии на входе.Линии преобразуются в символы канала сочетания CR-LF на выходе.Передача _O_BINARY устанавливает режим binary (untranslated), в котором эти преобразования подавляются.

Можно также передать _O_U16TEXT" _O_U8TEXTили _O_WTEXT включить режим в юникоде, как показано в вторым примером далее в этом документе._setmode обычно используются, чтобы изменить режим по умолчанию перевода stdin и stdoutтолько его можно использовать в любом файле.Если применить _setmode в идентификатор файла для потока, вызов _setmode перед выполнением все операции ввода или вывода в потоке.

Предупреждающее замечаниеВнимание

При написании данные в файловый поток, явно flush с помощью кода fflush прежде чем использовать _setmode изменение режима.Если не топите код, можно получить непредвиденную расширений функциональности.Если не написан данные в поток, не нужно сбросить код.

Требования

Процедура

Обязательный заголовок

Необязательные заголовки

_setmode

<io.h>

<fcntl.h>

Дополнительные сведения о совместимости см. Совместимость.

Пример

// 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}

См. также

Ссылки

Обработка файла

_create, _wcreat

fopen, _wfopen

_open, _wopen

_set_fmode