ИМЯ

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

LIBRARY

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]

Recommended readings

Pages related to asprintf you should read also: