.\" -*- coding: UTF-8 -*- '\" t .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH stdio_ext 3 "17 мая 2025 г." "Справочные страницы Linux 6.15" .SH НАИМЕНОВАНИЕ __fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf \- интерфейс к структуре stdio FILE .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP,\ \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP \fB#include \fP .P \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 они также реализованы. .P Функция \fB__fbufsize\fP() возвращает размер буфера, использующегося в данным момент указанным потоком. .P The \fB__fpending\fP() function returns the number of characters in the output buffer. For wide\-oriented streams the unit is wide characters. This function is undefined on buffers in reading mode, or opened read\-only. .P Функция \fB__flbf\fP() возвращает ненулевое значение, если поток буферизируется построчно, и ноль в противном случае. .P Функция \fB__freadable\fP() возвращает ненулевое значение, если поток доступен для чтения, и ноль в противном случае. .P Функция \fB__fwritable\fP() возвращает ненулевое значение, если поток доступен для записи, и ноль в противном случае. .P Функция \fB__freading\fP() возвращает ненулевое значение, если поток доступен только для чтения, или если последняя операция с потоком была операцией чтения, и ноль в противном случае. .P Функция \fB__fwriting\fP() возвращает ненулевое значение, если поток доступен только для записи (или открыт только для добавления), или если последняя операция с потоком была операцией записи, и ноль в противном случае. .P Функция \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 Не изменять тип блокировки (только вернуть текущий). .P Функция \fB_flushlbf\fP() сбрасывает (flushes) все буферизируемые построчно потоки (например для того, чтобы вывести всё на терминал перед чтением ввода с клавиатуры). .P Функция \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 .SH "СМОТРИТЕ ТАКЖЕ" \fBflockfile\fP(3), \fBfpurge\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov , Иван Павлов и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .