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