vscnprintf — Format a string and place it in a buffer


int vscnprintf (char * buf,
 size_t size,
 const char * fmt,
 va_list args);


char * buf

The buffer to place the result into

size_t size

The size of the buffer, including the trailing null space

const char * fmt

The format string to use

va_list args

Arguments for the format string


The return value is the number of characters which have been written into the buf not including the trailing '\0'. If size is == 0 the function returns 0.

If you're not already dealing with a va_list consider using scnprintf.

See the vsnprintf documentation for format string extensions over C99.