asprintf(3) — Linux manual page


ASPRINTF(3)               Linux Programmer's Manual              ASPRINTF(3)

NAME         top

       asprintf, vasprintf - print to allocated string

SYNOPSIS         top

       #define _GNU_SOURCE         /* See feature_test_macros(7) */
       #include <stdio.h>

       int asprintf(char **strp, const char *fmt, ...);

       int vasprintf(char **strp, const char *fmt, va_list ap);

DESCRIPTION         top

       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.

RETURN VALUE         top

       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 are undefined.

ATTRIBUTES         top

       For an explanation of the terms used in this section, see

       │Interface               Attribute     Value          │
       │asprintf(), vasprintf() │ Thread safety │ MT-Safe locale │

CONFORMING TO         top

       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.

SEE ALSO         top

       free(3), malloc(3), printf(3)

COLOPHON         top

       This page is part of release 5.08 of the Linux man-pages project.  A
       description of the project, information about reporting bugs, and the
       latest version of this page, can be found at

GNU                              2019-03-06                      ASPRINTF(3)

Pages that refer to this page: dprintf(3)fprintf(3)printf(3)snprintf(3)sprintf(3)vdprintf(3)vfprintf(3)vprintf(3)vsnprintf(3)vsprintf(3)