Считать строку широких символов из потока
#include <wchar.h>
wchar_t * fgetws( wchar_t *buf,
int n,
FILE *fp );
- buf
- Указатель на буфер, в котором fgetws() может разместить считанные широкие символы.
- n
- Максимальное количество считываемых символов.
- fp
- Поток, из которого считываются символы.
libc
Функция fgetws() считывает строку широких символов из потока, определяемого fp, и размещает ее в массиве, определяемом buf.
Чтение широких символов останавливается при достижении одного из следующих условий:
- Достигнут конец файла.
- Прочитан символ новой строки ('\n').
- Прочитано n-1 символов.
Функция fgetws() размещает NUL
в конце строки.
| Не стоит предполагать, что все строки содержат символ новой строки. Символ новой строки может отсутствовать, если перед ним расположено больше, чем n-1 символов.
Также символ новой строки может отсутствовать в качестве последнего символа, если достигнут конец файла. |
- NULL
- Возникла ошибка или поток достиг конца файла. Код ошибки записан в errno.
- buf
- Успешное завершение.
| Следует использовать feof() или ferror(), чтобы отличить условие конца файла от ошибки. |
- EAGAIN
- Флаг O_NONBLOCK установлен для потока fp и будет заблокирован данной операцией.
- EBADF
- Файловый дескриптор, определенный fp, недоступен для чтения.
- EINTR
- Сигнал прервал операцию чтения; данные не будут переданы.
- EIO
- Возникла физическая ошибка ввода/вывода или процесс запущен в фоне и блокирован или игнорируется.
- EOVERFLOW
- Невозможно считать данные по максимальному смещению или за границами данного потока.
ANSI, POSIX 1003.1
- Да
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
errno, feof(), ferror(), fgets(), fputwc(), fputws(), fwide(), gets()
Предыдущий раздел: Описание API системной библиотеки