Man page - open_memstream(3)

Packages contains this manual

Available languages:

en fr ru ro

Manual

open_memstream

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
АТРИБУТЫ
СТАНДАРТЫ
ИСТОРИЯ
ПРИМЕЧАНИЯ
ОШИБКИ
ПРИМЕРЫ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

open_memstream, open_wmemstream - открывает динамический буфер памяти как поток

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#include <stdio.h>

FILE *open_memstream(char ** ptr , size_t * sizeloc );

#include <wchar.h>

FILE *open_wmemstream(wchar_t ** ptr , size_t * sizeloc );

Требования макроса тестирования свойств для glibc (см. feature_test_macros (7)):

open_memstream (), open_wmemstream ():
Начиная с glibc 2.10:
_POSIX_C_SOURCE >= 200809L
До glibc 2.10:
_BSD_SOURCE

ОПИСАНИЕ

Функция open_memstream () открывает поток для записи в буфер памяти. Буфер выделяется динамически и при необходимости автоматически увеличивается. Первоначально размер буфера равен нулю.После закрытия потока вызывающий должен освободить буфер с помощью free (3).

Аргументы ptr и sizeloc используются для определения текущего положения и размера буфера, соответственно. Положение обновляется при каждом сбросе потока ( fflush (3)) и его закрытии ( fclose (3)). Эти значения остаются корректными, пока вызывающий не произведёт вывод в поток. После выполнения вывода, перед тем как обращаться к этим переменным, поток снова должен быть сброшен.

Байт null поддерживается в конце буфера. Этот байт не учитывается в значении размера, хранящемся в sizeloc .

Для потока существует понятие текущего положения, которое изначально равно нулю (начало буфера). Каждая операция записи неявно изменяет положение буфера. Положение буфера потока можно изменить явно с помощью fseek (3) или fseeko (3). Перемещение положения буфера за конец уже записанных данных приводит к заполнению промежутка символами null.

Функция open_wmemstream () похожа на open_memstream (), но работает с широкими символами, а не с байтами.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении open_memstream () и open_wmemstream () возвращается указатель FILE . В противном случае возвращается NULL и errno присваивается код ошибки.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes (7).

Image grohtml-620768-1.png

СТАНДАРТЫ

POSIX.1-2008.

ИСТОРИЯ

open_memstream ()

glibc 1.0.x.

open_wmemstream ()

glibc 2.4.

ПРИМЕЧАНИЯ

У файлового потока, возвращаемого этими функциями, отсутствует файловый дескриптор (т. е., если файловый поток передать в fileno (3), то произойдёт ошибка).

ОШИБКИ

Before glibc 2.7, seeking past the end of a stream created by open_memstream () does not enlarge the buffer; instead the fseek (3) call fails, returning -1.

ПРИМЕРЫ

Смотрите fmemopen (3).

СМОТРИТЕ ТАКЖЕ

fmemopen (3), fopen (3), setbuf (3)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Konstantin Shvaykovskiy <kot.shv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .