.\" -*- 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 "28 декабря 2023 г." "Linux man\-pages 6.06" .SH ИМЯ open_memstream, open_wmemstream \- открывает динамический буфер памяти как поток .SH LIBRARY 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 и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .