since: 2.4


g_vasprintf (
  gchar** string,
  const gchar* format,
  va_list args


An implementation of the GNU vasprintf() function which supports positional parameters, as specified in the Single Unix Specification. This function is similar to g_vsprintf(), except that it allocates a string to hold the output, instead of putting the output in a buffer you allocate in advance.

The returned value in string is guaranteed to be non-NULL, unless format contains %lc or %ls conversions, which can fail if no multibyte representation is available for the given character.

glib/gprintf.h must be explicitly included in order to use this function.

Available since: 2.4

This function is not directly available to language bindings.



Type: gchar**

The return location for the newly-allocated string, which will be NULL if (and only if) this function fails.

The argument will be set by the function.
The called function takes ownership of the data, and is responsible for freeing it.
The value is a NUL terminated UTF-8 string.

Type: const gchar*

A standard printf() format string, but notice string precision pitfalls

The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.

Type: va_list

The list of arguments to insert in the output.

Return value

Type: gint

The number of bytes printed, or -1 on failure.