1 #include <u.h> 2 #include <libc.h> 3 4 int vsnprint(char * buf,int len,char * fmt,va_list args)5vsnprint(char *buf, int len, char *fmt, va_list args) 6 { 7 Fmt f; 8 9 if(len <= 0) 10 return -1; 11 f.runes = 0; 12 f.start = buf; 13 f.to = buf; 14 f.stop = buf + len - 1; 15 f.flush = nil; 16 f.farg = nil; 17 f.nfmt = 0; 18 f.args = args; 19 dofmt(&f, fmt); 20 *(char*)f.to = '\0'; 21 return (char*)f.to - buf; 22 } 23