.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2005, 2012, 2016 Michael Kerrisk .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\" 2008-12-04, Petr Baudis : Document open_wmemstream() .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH open_memstream 3 "23 июля 2024 г." "Linux man\-pages 6.12" .SH НАИМЕНОВАНИЕ open_memstream, open_wmemstream \- открывает динамический буфер памяти как поток .SH БИБЛИОТЕКА Standard C library (\fIlibc\fP,\ \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP .P \fBFILE *open_memstream(char **\fP\fIptr\fP\fB, size_t *\fP\fIsizeloc\fP\fB);\fP .P \fB#include \fP .P \fBFILE *open_wmemstream(wchar_t **\fP\fIptr\fP\fB, size_t *\fP\fIsizeloc\fP\fB);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \fBopen_memstream\fP(), \fBopen_wmemstream\fP(): .nf Начиная с glibc 2.10: _POSIX_C_SOURCE >= 200809L До glibc 2.10: _BSD_SOURCE .fi .SH ОПИСАНИЕ Функция \fBopen_memstream\fP() открывает поток для записи в буфер памяти. Буфер выделяется динамически и при необходимости автоматически увеличивается. Первоначально размер буфера равен нулю.После закрытия потока вызывающий должен освободить буфер с помощью \fBfree\fP(3). .P Аргументы \fIptr\fP и \fIsizeloc\fP используются для определения текущего положения и размера буфера, соответственно. Положение обновляется при каждом сбросе потока (\fBfflush\fP(3)) и его закрытии (\fBfclose\fP(3)). Эти значения остаются корректными, пока вызывающий не произведёт вывод в поток. После выполнения вывода, перед тем как обращаться к этим переменным, поток снова должен быть сброшен. .P Байт null поддерживается в конце буфера. Этот байт \fIне\fP учитывается в значении размера, хранящемся в \fIsizeloc\fP. .P Для потока существует понятие текущего положения, которое изначально равно нулю (начало буфера). Каждая операция записи неявно изменяет положение буфера. Положение буфера потока можно изменить явно с помощью \fBfseek\fP(3) или \fBfseeko\fP(3). Перемещение положения буфера за конец уже записанных данных приводит к заполнению промежутка символами null. .P Функция \fBopen_wmemstream\fP() похожа на \fBopen_memstream\fP(), но работает с широкими символами, а не с байтами. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении \fBopen_memstream\fP() и \fBopen_wmemstream\fP() возвращается указатель \fIFILE\fP. В противном случае возвращается NULL и \fIerrno\fP присваивается код ошибки. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBopen_memstream\fP(), \fBopen_wmemstream\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ .TP \fBopen_memstream\fP() glibc 1.0.x. .TP \fBopen_wmemstream\fP() glibc 2.4. .SH ПРИМЕЧАНИЯ У файлового потока, возвращаемого этими функциями, отсутствует файловый дескриптор (т. е., если файловый поток передать в \fBfileno\fP(3), то произойдёт ошибка). .SH ОШИБКИ .\" http://sourceware.org/bugzilla/show_bug.cgi?id=1996 Before glibc 2.7, seeking past the end of a stream created by \fBopen_memstream\fP() does not enlarge the buffer; instead the \fBfseek\fP(3) call fails, returning \-1. .SH ПРИМЕРЫ Смотрите \fBfmemopen\fP(3). .SH "СМОТРИТЕ ТАКЖЕ" \fBfmemopen\fP(3), \fBfopen\fP(3), \fBsetbuf\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Azamat Hackimov , Konstantin Shvaykovskiy , 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 .