2007-10-15 11:42:17 +02:00
|
|
|
#include <stdio.h>
|
2016-04-30 15:50:04 +02:00
|
|
|
#include <stdlib.h>
|
2007-10-15 11:42:17 +02:00
|
|
|
|
2016-05-19 14:15:22 +02:00
|
|
|
|
|
|
|
|
2007-10-15 11:42:17 +02:00
|
|
|
int fprintf(FILE* file, const char* format, ...)
|
|
|
|
{
|
2016-05-19 14:15:22 +02:00
|
|
|
va_list arg;
|
|
|
|
va_start (arg, format);
|
|
|
|
|
|
|
|
return vfprintf(file, format, arg);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int vfprintf ( FILE * file, const char * format, va_list arg )
|
|
|
|
{
|
|
|
|
char *buf;
|
|
|
|
int printed, rc = 0;
|
|
|
|
|
|
|
|
if(!file || !format)
|
|
|
|
{
|
|
|
|
errno = E_INVALIDPTR;
|
|
|
|
return errno;
|
|
|
|
}
|
|
|
|
|
|
|
|
buf=malloc(4096*2); //8kb max
|
|
|
|
if(!buf)
|
|
|
|
{
|
|
|
|
errno = E_NOMEM;
|
|
|
|
return errno;
|
|
|
|
}
|
2007-10-15 11:42:17 +02:00
|
|
|
|
|
|
|
printed=format_print(buf,8191, format,arg);
|
2016-05-11 16:53:54 +02:00
|
|
|
if (file == stderr)
|
|
|
|
debug_out_str(buf);
|
|
|
|
else
|
2016-05-19 14:15:22 +02:00
|
|
|
rc = fwrite(buf,printed,1,file);
|
2007-10-15 11:42:17 +02:00
|
|
|
free(buf);
|
|
|
|
|
2016-05-19 14:15:22 +02:00
|
|
|
if (rc < 0)
|
|
|
|
return rc;
|
|
|
|
else
|
|
|
|
return(printed);
|
2007-10-15 11:42:17 +02:00
|
|
|
}
|