4.1.2. 为什么找不到 vsprintf, sprintf, vprintf
这几个函数目前未放置到 libc.a 中,可以用下面的实现:
#include <stdarg.h>
int sprintf(char *out, const char *format, ...)
{
va_list args;
va_start(args, format);
return print(&out, 0, format, args);
}
int vprintf(const char *fmt, va_list va)
{
return print(0, 0, fmt, va);
}
int vsprintf(char *out, const char *format, va_list va)
{
return print(&out, 0, format, va);
}
int snprintf(char *out, size_t sz, const char *format, ...)
{
va_list args;
va_start(args, format);
if (sz == 0) {
return 0;
}
int ret = print(&out, out + sz - 1, format, args);
return ret;
}