asprintf, vasprintf — print to allocated string
#define _GNU_SOURCE #include <stdio.h>
int
asprintf( |
char ** | strp, |
const char * | fmt, | |
...) ; |
int
vasprintf( |
char ** | strp, |
const char * | fmt, | |
va_list | ap) ; |
The functions asprintf
() and
vasprintf
() are analogues of
sprintf(3) and vsprintf(3), except that
they allocate a string large enough to hold the output
including the terminating null byte, and return a pointer to
it via the first parameter. This pointer should be passed to
free(3) to release the
allocated storage when it is no longer needed.
When successful, these functions return the number of
bytes printed, just like sprintf(3). If memory
allocation wasn't possible, or some other error occurs, these
functions will return −1, and the contents of
strp
is
undefined.
These functions are GNU extensions, not in C or POSIX.
They are also available under *BSD. The FreeBSD
implementation sets strp
to NULL on error.
free(3), malloc(3), printf(3), feature_test_macros(7)
|