fgetwc, getwc -
считывает
широкий
символ из
потока FILE
Standard C library (
libc,
-lc)
#include <stdio.h>
#include <wchar.h>
wint_t fgetwc(FILE *stream);
wint_t getwc(FILE *stream);
Функция
fgetwc()
— это
эквивалент
функции
fgetc(3),
но для
широких
символов.
Она читает
широкий
символ из
stream и
возвращает
его. Если
достигнут
конец
потока или
значение
ferror(stream)
истинно, то
функция
возвращает
WEOF. Если при
преобразовании
в широкий
символ
возникает
ошибка, то
значение
переменной
errno
устанавливается
равным
EILSEQ и
возвращается
WEOF.
Функция
getwc() —
это
функция,
или макрос,
идентичный
fgetwc(). Она
может быть
реализована
в виде
макроса, и
может
вычислять
свой
аргумент
более
одного
раза.
Вообще нет
смысла
использовать
эту
функцию.
Для
неблокирующих
аналогов,
см.
unlocked_stdio(3).
On success,
fgetwc() returns the next wide-character from the stream.
Otherwise,
WEOF is returned, and
errno is set to indicate the
error.
Кроме
обычных
могут
возникать:
- EILSEQ
- Данные,
полученные
из
входного
потока, не
содержат
корректного
символа.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
fgetwc(), getwc() |
Безвредность
в нитях |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99.
Поведение
fgetwc() зависит
от
категории
LC_CTYPE текущей
локали.
Из-за
отсутствия
дополнительной
информации,
передаваемой
в
fopen(3),
закономерно
ожидать,
что
fgetwc() на
самом деле
читает
многобайтовую
последовательность
из потока, а
затем
преобразует
её в
широкий
символ.
fgetws(3),
fputwc(3),
ungetwc(3),
unlocked_stdio(3)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitry Bolkhovskikh
<
[email protected]>, Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]