__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading,
__fsetlocking, __fwritable, __fwriting, _flushlbf -
интерфейс
к
структуре stdio
FILE
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(),
__fsetlocking() |
Безвредность
в нитях |
MT-Safe race:stream |
__flbf(), __freadable(), __freading(),
__fwritable(), __fwriting(), _flushlbf() |
Безвредность
в нитях |
MT-Safe |
flockfile(3),
fpurge(3)
Русский
перевод
этой
страницы
руководства
был сделан
Alexander Golubev <
[email protected]>, Azamat Hackimov
<
[email protected]>, Hotellook, Nikita
<
[email protected]>, Spiros Georgaras <
[email protected]>, Vladislav
<
[email protected]>, Yuri Kozlov <
[email protected]>
и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]