2011-02-12 00:22:29 -05:00
|
|
|
#include "stdio_impl.h"
|
|
|
|
|
2011-02-20 22:24:28 -05:00
|
|
|
static size_t wrap_write(FILE *f, const unsigned char *buf, size_t len)
|
|
|
|
{
|
|
|
|
return __stdio_write(f, buf, len);
|
|
|
|
}
|
|
|
|
|
2011-02-12 00:22:29 -05:00
|
|
|
int vdprintf(int fd, const char *fmt, va_list ap)
|
|
|
|
{
|
|
|
|
int r;
|
2011-03-25 16:34:03 -04:00
|
|
|
unsigned char buf[BUFSIZ];
|
2011-02-12 00:22:29 -05:00
|
|
|
FILE f = {
|
2011-02-20 22:24:28 -05:00
|
|
|
.fd = fd, .lbf = EOF, .write = wrap_write,
|
2011-02-12 00:22:29 -05:00
|
|
|
.buf = buf+UNGET, .buf_size = sizeof buf - UNGET
|
|
|
|
};
|
|
|
|
r = vfprintf(&f, fmt, ap);
|
|
|
|
__oflow(&f);
|
|
|
|
return r;
|
|
|
|
}
|