xref: /plan9-contrib/sys/src/ape/lib/ap/stdio/snprintf.c (revision 25fc69938fdecc61cd09e795cbe2d2f72f1082b1)
19a747e4fSDavid du Colombier /*
29a747e4fSDavid du Colombier  * pANS stdio -- sprintf
39a747e4fSDavid du Colombier  */
4*25fc6993SDavid du Colombier #define _C99_SNPRINTF_EXTENSION
5*25fc6993SDavid du Colombier 
69a747e4fSDavid du Colombier #include "iolib.h"
7*25fc6993SDavid du Colombier 
8d9dc5dd1SDavid du Colombier int snprintf(char *buf, size_t nbuf, const char *fmt, ...){
99a747e4fSDavid du Colombier 	int n;
109a747e4fSDavid du Colombier 	va_list args;
119a747e4fSDavid du Colombier 	FILE *f=_IO_sopenw();
129a747e4fSDavid du Colombier 	if(f==NULL)
139a747e4fSDavid du Colombier 		return 0;
149a747e4fSDavid du Colombier 	setvbuf(f, buf, _IOFBF, nbuf);
159a747e4fSDavid du Colombier 	va_start(args, fmt);
169a747e4fSDavid du Colombier 	n=vfprintf(f, fmt, args);
179a747e4fSDavid du Colombier 	va_end(args);
189a747e4fSDavid du Colombier 	_IO_sclose(f);
199a747e4fSDavid du Colombier 	return n;
209a747e4fSDavid du Colombier }
21