Provided by: manpages-ru-dev_4.21.0-2_all
ИМЯ
__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf - интерфейс к структуре stdio FILE
LIBRARY
Standard C library (libc, -lc)
СИНТАКСИС
#include <stdio.h> #include <stdio_ext.h> size_t __fbufsize(FILE *stream); size_t __fpending(FILE *stream); int __flbf(FILE *stream); int __freadable(FILE *stream); int __fwritable(FILE *stream); int __freading(FILE *stream); int __fwriting(FILE *stream); int __fsetlocking(FILE *stream, int type); void _flushlbf(void); void __fpurge(FILE *stream);
ОПИСАНИЕ
В Solaris были представлены процедуры, представляющие переносимый способ доступа к внутренностям структуры FILE, в glibc они также реализованы. Функция __fbufsize() возвращает размер буфера, использующегося в данным момент указанным потоком. Функция __fpending() возвращает количество байт в буфере вывода. В потоках с широкими символами единицей является широкий символ. Эта функция не определена для буферов, находящихся в процессе чтения, или открытых в режиме только для чтения. Функция __flbf() возвращает ненулевое значение, если поток буферизируется построчно, и ноль в противном случае. Функция __freadable() возвращает ненулевое значение, если поток доступен для чтения, и ноль в противном случае. Функция __fwritable() возвращает ненулевое значение, если поток доступен для записи, и ноль в противном случае. Функция __freading() возвращает ненулевое значение, если поток доступен только для чтения, или если последняя операция с потоком была операцией чтения, и ноль в противном случае. Функция __fwriting() возвращает ненулевое значение, если поток доступен только для записи (или открыт только для добавления), или если последняя операция с потоком была операцией записи, и ноль в противном случае. Функция __fsetlocking() может быть использована для выбора желаемого типа блокировки потока. Она возвращает текущий тип. В аргументе type может быть указано одно из трёх значений: FSETLOCKING_INTERNAL Выполнять неявную блокировку при каждой операции с заданным потоком (за исключением *_unlocked). Действует по умолчанию. FSETLOCKING_BYCALLER Вызывающий сам выполняет блокировку (возможно, с помощью flockfile(3), если есть несколько нитей), и процедуры stdio не выполняют блокировки до тех пор, пока состояние не сбросится в FSETLOCKING_INTERNAL. FSETLOCKING_QUERY Не изменять тип блокировки (только вернуть текущий). Функция _flushlbf() сбрасывает (flushes) все буферизируемые построчно потоки (например для того, чтобы вывести всё на терминал перед чтением ввода с клавиатуры). Функция __fpurge() удаляет содержимое поточного буфера.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7). ┌────────────────────────────────────────────┬──────────────────────┬─────────────────────┐ │Интерфейс │ Атрибут │ Значение │ ├────────────────────────────────────────────┼──────────────────────┼─────────────────────┤ │__fbufsize(), __fpending(), __fpurge(), │ Безвредность в нитях │ MT-Safe race:stream │ │__fsetlocking() │ │ │ ├────────────────────────────────────────────┼──────────────────────┼─────────────────────┤ │__flbf(), __freadable(), __freading(), │ Безвредность в нитях │ MT-Safe │ │__fwritable(), __fwriting(), _flushlbf() │ │ │ └────────────────────────────────────────────┴──────────────────────┴─────────────────────┘
СМ. ТАКЖЕ
flockfile(3), fpurge(3)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com> Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.