int vasprintf(char **strp, const char *fmt, va_list ap);
ОПИСАНИЕ
Функции
asprintf
и
vasprintf
являются аналогами
sprintf
и
vsprintf,
отличаясь только тем, что они выделяют в памяти строку, достаточную для
размещения результата, включая конечный NUL, и возвращают указатель
на эту строку через первый аргумент.
Для высвобождения выделенной памяти указатель должен быть передан
функции
free(3).
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
При успешном завершении эти функции, подобно
sprintf(3),
возвращают количество выведенных байтов.
Если выделить память не удалось или произошла какая-либо другая
ошибка, то эти функции возвращают -1. При этом содержимое
strp
не определено.
ЗАМЕЧАНИЯ
Эти функции являются расширениями GNU, и не соответсвуют ни C,
ни POSIX. Кроме того, они доступны в *BSD.
В FreeBSD при ошибке
strp
устанавливается в NULL.