summaryrefslogblamecommitdiff
path: root/src/stdio/vdprintf.c
blob: 35ed6e0b6c737dfe75d5b9e86a65e57b19749038 (plain) (tree)
1
2
3
4
5
6
7

                       




                                                                       




                                                 
                                                          





                                                                
#include "stdio_impl.h"

static size_t wrap_write(FILE *f, const unsigned char *buf, size_t len)
{
	return __stdio_write(f, buf, len);
}

int vdprintf(int fd, const char *fmt, va_list ap)
{
	int r;
	char buf[BUFSIZ];
	FILE f = {
		.fd = fd, .lbf = EOF, .write = wrap_write,
		.buf = buf+UNGET, .buf_size = sizeof buf - UNGET
	};
	r = vfprintf(&f, fmt, ap);
	__oflow(&f);
	return r;
}