asprintf(), vasprintf()

Выделить память и сформировать форматированную строку

Прототип:

#include <stdarg.h>
#include <stdio.h>
int asprintf( char **bufp,
const char *fmt,
... );
int vasprintf( char **bufp,
const char *fmt,
va_list va );

Аргументы:

bufp
Возвращаемый указатель на выделенную память, достаточную для хранения форматированной строки.
fmt
Строка, характеризующая формат выходной информации. Она определяет какие дополнительные аргументы следует передать функции. Дополнительная информация о формате параметра fmt указана на странице printf().
va
...
Список дополнительных аргументов функции.

Библиотека:

libc

Описание:

Данные функции выделяют память для хранения будущей строки и производят ее запись в новосозданный буфер. Возвращенную через аргумент bufp память следует освободить с помощью free() как только потребность в ней пропадет. Если выделить память не удалось, параметру bufp устанавливается значение NULL.

Функция vasprintf() является “varargs” версией asprintf(). Обе функции близки по своему принципу работы к vsnprintf().

Возвращаемое значение:

Число символов, которые записаны в буфер (без завершающего нуля). При ошибке возвращается -1 и устанавливается errno.

Классификация:

GNU, BSD

Поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2020

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

errno, fprintf(), fwprintf(), printf(), snprintf(), sprintf(), swprintf(), va_start(), vfprintf(), vfwprintf(), vprintf(), vsnprintf(), vsprintf(), vswprintf(), vwprintf(), wprintf()




Предыдущий раздел: Описание API системной библиотеки