.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2001 Andries Brouwer . .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH stdio_ext 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ __fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- интерфейс к структуре stdio FILE .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP \fB#include \fP .PP \fBsize_t __fbufsize(FILE *\fP\fIstream\fP\fB);\fP \fBsize_t __fpending(FILE *\fP\fIstream\fP\fB);\fP \fBint __flbf(FILE *\fP\fIstream\fP\fB);\fP \fBint __freadable(FILE *\fP\fIstream\fP\fB);\fP \fBint __fwritable(FILE *\fP\fIstream\fP\fB);\fP \fBint __freading(FILE *\fP\fIstream\fP\fB);\fP \fBint __fwriting(FILE *\fP\fIstream\fP\fB);\fP \fBint __fsetlocking(FILE *\fP\fIstream\fP\fB, int \fP\fItype\fP\fB);\fP \fBvoid _flushlbf(void);\fP \fBvoid __fpurge(FILE *\fP\fIstream\fP\fB);\fP .fi .SH ОПИСАНИЕ В Solaris были представлены процедуры, представляющие переносимый способ доступа к внутренностям структуры \fIFILE\fP, в glibc они также реализованы. .PP Функция \fB__fbufsize\fP() возвращает размер буфера, использующегося в данным момент указанным потоком. .PP Функция \fB__fpending\fP() возвращает количество байт в буфере вывода. В потоках с широкими символами единицей является широкий символ. Эта функция не определена для буферов, находящихся в процессе чтения, или открытых в режиме только для чтения. .PP Функция \fB__flbf\fP() возвращает ненулевое значение, если поток буферизируется построчно, и ноль в противном случае. .PP Функция \fB__freadable\fP() возвращает ненулевое значение, если поток доступен для чтения, и ноль в противном случае. .PP Функция \fB__fwritable\fP() возвращает ненулевое значение, если поток доступен для записи, и ноль в противном случае. .PP Функция \fB__freading\fP() возвращает ненулевое значение, если поток доступен только для чтения, или если последняя операция с потоком была операцией чтения, и ноль в противном случае. .PP Функция \fB__fwriting\fP() возвращает ненулевое значение, если поток доступен только для записи (или открыт только для добавления), или если последняя операция с потоком была операцией записи, и ноль в противном случае. .PP Функция \fB__fsetlocking\fP() может быть использована для выбора желаемого типа блокировки потока. Она возвращает текущий тип. В аргументе \fItype\fP может быть указано одно из трёх значений: .TP \fBFSETLOCKING_INTERNAL\fP Выполнять неявную блокировку при каждой операции с заданным потоком (за исключением *_unlocked). Действует по умолчанию. .TP \fBFSETLOCKING_BYCALLER\fP Вызывающий сам выполняет блокировку (возможно, с помощью \fBflockfile\fP(3), если есть несколько нитей), и процедуры stdio не выполняют блокировки до тех пор, пока состояние не сбросится в \fBFSETLOCKING_INTERNAL\fP. .TP \fBFSETLOCKING_QUERY\fP Не изменять тип блокировки (только вернуть текущий). .PP Функция \fB_flushlbf\fP() сбрасывает (flushes) все буферизируемые построчно потоки (например для того, чтобы вывести всё на терминал перед чтением ввода с клавиатуры). .PP Функция \fB__fpurge\fP() удаляет содержимое поточного буфера. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fB__fbufsize\fP(), \fB__fpending\fP(), \fB__fpurge\fP(), \fB__fsetlocking\fP() T} Безвредность в нитях MT\-Safe race:stream T{ .na .nh \fB__flbf\fP(), \fB__freadable\fP(), \fB__freading\fP(), \fB__fwritable\fP(), \fB__fwriting\fP(), \fB_flushlbf\fP() T} Безвредность в нитях MT\-Safe .TE .sp 1 .SH "СМ. ТАКЖЕ" \fBflockfile\fP(3), \fBfpurge\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .