static void sprintf_pushc(c, str_p) char c; char ** str_p; { char * str = * str_p; *str++ = c; *str_p = str; } void sprintf(target, template, args) char * target; char * template; long args; { char * s = target; _printf_guts(template, &args, sprintf_pushc, &s); *s = '\0'; } int vsprintf(target, template, args) char * target; char * template; int * args; { char * s = target; int result = _printf_guts(template, args, sprintf_pushc, &s); *s = '\0'; return(result); }