[ CCode ( cname = "g_strdup_vprintf" ) ]
public string vprintf (va_list args)
Similar to the standard C vsprintf
function but safer, since it calculates the maximum space required and allocates memory
to hold the result.
The returned string should be freed with g_free when no longer needed.
The returned 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.
See also g_vasprintf
, which offers the same functionality, but additionally returns the length of the allocated string.
Example: Format a string with printf:
public static void my_printf (string format, ...) {
va_list va_list = va_list ();
string res = format.vprintf (va_list);
print (res);
}
public static int main (string[] args) {
// Output: ``Shut up, K-9!``
my_printf ("Shut %s, %c-%d!\n", "up", 'K', 9);
return 0;
}
valac --pkg glib-2.0 string.vprintf.vala
args |
the list of parameters to insert into the format string |
format |
a standard printf format string, but notice string precision pitfalls |
a newly-allocated string holding the result |