fgetws - читает строку широких символов из потока FILE
fgetws(3)
читает строку широких символов из потока FILE
ОБЗОР
#include <wchar.h>
wchar_t *fgetws(wchar_t *ws, int n, FILE *stream);
ОПИСАНИЕ
Функция
fgetws() — это эквивалент
fgets(3), но работающий со строками
широких символов. Она читает строку из не более чем
n-1 широких символов,
записывает её в массив широких символов
ws и добавляет завершающий
широкий символ null (L'\0'). Она прекращает чтение после обнаружения
и записи широкого символа новой строки. Это также происходит и в случае
достижения конца потока.
Программист должен убедиться в том, что выделил для ws память,
достаточную для записи не менее n широких символов.
Неблокирующий аналог смотрите в unlocked_stdio(3).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция
fgetws() в случае удачного выполнения возвращает
ws. Если
достигнут конец потока или возникает ошибка, то возвращается NULL.
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
fgetws()
безвредность в потоках: безвредно (MT-Safe)
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008, C99.
ЗАМЕЧАНИЯ
Поведение
fgetws() зависит от категории
LC_CTYPE текущей локали.
Из-за отсутствия дополнительной информации, передаваемой в fopen(3),
закономерно ожидать, что fgetws() на самом деле читает многобайтовую
строку из потока, а затем преобразует её в широкую строку.
Данная функция ненадёжна, так как не позволяет правильно обработать
ситуацию, когда во входных данных появляется широкий символ null.