#include <stdio.h>
int vprintf(const char *format, va_list ap);
int vfprintf(FILE *stream, const char *format, va_list ap);
#include <stdarg.h>
#include <stdlib.h>
FILE *printer;
FILE *logfile;
int xprintf(const char *format, ...)
{
va_list ap;
va_start(ap, format);
vprintf(format, ap);
if(printer)
vfprintf(printer, format, ap);
if(logfile)
vfprintf(logfile, format, ap);
va_end(ap);
}
/*
int old_xprintf(const char *format, long a1, long a2, long a3, long a4,
long a5, long a6, long a7, long a8)
{
printf(format,a1, a2, a3, a4, a5, a6, a7, a8);
if(printer)
fprintf(printer, format, a1, a2, a3, a4, a5, a6, a7, a8);
if(logfile)
fprintf(logfile, format, a1, a2, a3, a4, a5, a6, a7, a8);
}
*/
int main(void)
{
int a1 = 1, a2 = 2, a3 = 3, a4 = 4, a5 = 5, a6 = 6, a7 = 7, a8 = 8,
a9 = 9;
printer = fopen("test", "w+");
logfile = fopen("test2", "w+");
// old_xprintf("%d,%d,%d,%d,%d,%d,%d,%d\n", a1, a2, a3, a4, a5, a6, a7, a8);
xprintf("kkkkkkk%d,%d,%d\n", a1, a2,a4,a5);
fclose(printer);
fclose(logfile);
return 0;
}
beyes@linux-beyes:~/C/base> ./vsprintf.exe
kkkkkkk1,2,4
beyes@linux-beyes:~/C/base> cat test
kkkkkkk1,2,4
beyes@linux-beyes:~/C/base> cat test2
kkkkkkk1,2,4
beyes@linux-beyes:~/C/base> ./vsprintf.exe
kkkkkkk1,0,0
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |