int vsnprintf(char *__s, size_t __n, const char *__fmt, va_list ap)
Like vsprintf(), but instead of assuming
s to be of infinite size, no more than
n characters (including the trailing NUL character)
will be converted to s.
Returns the number of characters that would have been written to
s if there were enough space.