Manpages - asprintf.3

Table of Contents

NAME

asprintf, vasprintf - print to allocated string

SYNOPSIS

  #define _GNU_SOURCE /* See 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);

DESCRIPTION

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

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

For an explanation of the terms used in this section, see *attributes*(7).

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

CONFORMING TO

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

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

COLOPHON

This page is part of release 5.13 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 https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 14:59