sprintn
str = sprintn(str, (long)i, 10);
str = sprintn(str, va_arg(ap, long), c == 'o' ? 8 : (c == 'x' ? 16 : 10));
str = sprintn(str, va_arg(ap, long), 10);
str = sprintn(str, va_arg(ap, unsigned) , 8);
s = sprintn(s, a, b);
static char *sprintn(char *, long, int);