asprintf, vasprintf - выводит
данные в
строку,
выделенную
в памяти
Standard C library (
libc,
-lc)
#define _GNU_SOURCE /* см. feature_test_macros(7) */
#include <stdio.h>
int asprintf(char **restrict strp, const char *restrict fmt, ...);
int vasprintf(char **restrict strp, const char *restrict fmt,
va_list ap);
The functions
asprintf() and
vasprintf() are analogs of
sprintf(3) and
vsprintf(3), except that they allocate a string
large enough to hold the output including the terminating null byte ('\0'),
and return a pointer to it via the first argument. This pointer should be
passed to
free(3) to release the allocated storage when it is no longer
needed.
При
успешном
выполнении
эти
функции,
подобно
sprintf(3),
возвращают
количество
выведенных
байтов.
Если
выделить
память не
удалось
или
произошла
какая-либо
другая
ошибка, то
эти
функции
возвращают
-1. При этом
содержимое
strp не
определено.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
asprintf(), vasprintf() |
Безвредность
в нитях |
MT-Safe locale |
Эти
функции
являются
расширениями
GNU, они
отсутствуют
в C и POSIX. Также
они
доступны в
*BSD. В FreeBSD при
ошибке
strp
присваивается
значение NULL.
free(3),
malloc(3),
printf(3)
Русский
перевод
этой
страницы
руководства
был сделан
Dmitry Bolkhovskikh <
[email protected]> и Yuri Kozlov
<
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]