
/** *----------------------------stdio.h--------------------------------------- * int printf(const char *format, ...) * int fprintf(FILE *stream, const char *format, ...) * int sprintf(char *str, const char *format, ...) * int snprintf(char *str, size_t size, const char *format, ...) * * --------------------------stdarg.h--------------------------------------- * int vprintf(const char *format, va_list ap) * int vfprintf(FILE *stream, const char *format, va_list ap) * int vsprintf(char *str, const char *format, va_list ap) * int vsnprintf(char *str, size_t size, const char *format, va_list ap) */ #include <stdio.h> #include <stdarg.h> int _vprintf(const char *fmt, ...){ int ret; va_list ap; va_start(ap, fmt); ret = vprintf(fmt, ap); va_end(ap); return ret; } int _vfprintf(const char *fmt, ...){ int ret; va_list ap; va_start(ap, fmt); ret = vfprintf(stdout, fmt, ap); va_end(ap); return ret; } int _vsprintf(const char *fmt, ...){ char buf[513]; int ret; va_list ap; va_start(ap, fmt); ret = vsprintf(buf, fmt, ap); printf("%s", buf); va_end(ap); return ret; } int _vsnprintf(const char *fmt, ...){ char buf[513]; int ret; va_list ap; va_start(ap, fmt); ret = vsnprintf(buf, sizeof(buf),fmt, ap); printf("%s", buf); va_end(ap); return ret; } int main(){ int ret; char buf[512]; //printf ret = printf("%d---%s ", 1, "printf"); printf("ret = %d ", ret); //fprintf ret = fprintf(stdout, "%d---%s", 2, "fprintf"); printf("ret = %d ", ret); //sprintf ret = sprintf(buf, "%d---%s", 3, "sprintf"); printf("%s, ret = %d ", buf, ret); //snprintf ret = snprintf(buf, sizeof(buf), "%d---%s", 4, "snprintf"); printf("%s, ret = %d ", buf, ret); //vprintf ret = _vprintf("%d---%s ", 5, "vprintf"); printf("ret = %d ", ret); //vfprintf ret = _vfprintf("%d---%s ", 6, "vfprintf"); printf("ret = %d ", ret); //vsprintf ret = _vsprintf("%d---%s ", 7, "vsprintf"); printf("ret = %d ", ret); //vsnprintf ret = _vsnprintf("%d---%s ", 8, "vsnprintf"); printf("ret = %d ", ret); }