Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       __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⟩.