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

НАИМЕНОВАНИЕ

       __fbufsize,   __flbf,   __fpending,   __fpurge,   __freadable,  __freading,  __fsetlocking,  __fwritable,
       __fwriting, _flushlbf - интерфейс к структуре stdio FILE

БИБЛИОТЕКА

       Стандартная библиотека языка C (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(), __fsetlocking()  │ Безвредность в нитях │ MT-Safe race:stream │
       ├──────────────────────────────────────────────────────────┼──────────────────────┼─────────────────────┤
       │ __flbf(), __freadable(), __freading(), __fwritable(),    │ Безвредность в нитях │ MT-Safe             │
       │ __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> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                     stdio_ext(3)