1*46111Sbostic /*- 2*46111Sbostic * Copyright (c) 1990 The Regents of the University of California. 3*46111Sbostic * All rights reserved. 4*46111Sbostic * 5*46111Sbostic * This code is derived from software contributed to Berkeley by 6*46111Sbostic * Chris Torek. 7*46111Sbostic * 8*46111Sbostic * %sccs.include.redist.c% 9*46111Sbostic */ 10*46111Sbostic 11*46111Sbostic #if defined(LIBC_SCCS) && !defined(lint) 12*46111Sbostic static char sccsid[] = "@(#)vsnprintf.c 5.1 (Berkeley) 01/20/91"; 13*46111Sbostic #endif /* LIBC_SCCS and not lint */ 14*46111Sbostic 15*46111Sbostic #include <stdio.h> 16*46111Sbostic 17*46111Sbostic vsnprintf(str, n, fmt, ap) 18*46111Sbostic char *str; 19*46111Sbostic size_t n; 20*46111Sbostic char *fmt; 21*46111Sbostic _VA_LIST_ ap; 22*46111Sbostic { 23*46111Sbostic int ret; 24*46111Sbostic FILE f; 25*46111Sbostic 26*46111Sbostic if ((int)n < 1) 27*46111Sbostic return (EOF); 28*46111Sbostic f._flags = __SWR | __SSTR; 29*46111Sbostic f._bf._base = f._p = (unsigned char *)str; 30*46111Sbostic f._bf._size = f._w = n - 1; 31*46111Sbostic ret = vfprintf(&f, fmt, ap); 32*46111Sbostic *f._p = 0; 33*46111Sbostic return (ret); 34*46111Sbostic } 35