Linux Man на русском

  User    Syst    Libr    Device    Files    Other    Admin  



   asprintf - выводит данные в строку, выделенную в памяти

asprintf(3) выводит данные в строку, выделенную в памяти

Other Alias

vasprintf


ОБЗОР

#define _GNU_SOURCE /* смотрите feature_test_macros(7) */
#include <stdio.h>

int asprintf(char **strp, const char *fmt, ...);

int vasprintf(char **strp, const char *fmt, va_list ap);


ОПИСАНИЕ

Функции asprintf и vasprintf являются аналогами sprintf(3) и vsprintf(3), отличаясь только тем, что они выделяют в памяти строку, достаточную для размещения результата, включая конечный байт null ('\0'), и возвращают указатель на эту строку через первый аргумент. Для высвобождения выделенной памяти указатель должен быть передан функции free(3).


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

При успешном выполнении эти функции, подобно sprintf(3), возвращают количество выведенных байтов. Если выделить память не удалось или произошла какая-либо другая ошибка, то эти функции возвращают -1. При этом содержимое strp не определено.


АТРИБУТЫ

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

Интерфейс Атрибут Значение
asprintf(), vasprintf() безвредность в потоках: безвредно (MT-Safe locale)


СООТВЕТСТВИЕ СТАНДАРТАМ

Эти функции являются расширениями GNU, они отсутствуют в C и POSIX. Также они доступны в *BSD. В FreeBSD при ошибке strp присваивается значение NULL.