Provided by: manpages-ru-dev_4.26.0-1_all 
      
    
НАИМЕНОВАНИЕ
       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).
       ┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ Интерфейс                                                           │ Атрибут              │ Значение │
       ├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │ open_memstream(), open_wmemstream()                                 │ Безвредность в нитях │ MT-Safe  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘
СТАНДАРТЫ
       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  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
       Если  вы  обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам)  по  его(их)  адресу(ам)  электронной  почты  или  по   адресу   списка рассылки русских
       переводчиков.
Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                open_memstream(3)