<html> <head> <title>__vprintf</title> <body bgcolor=#ffffff> <h2 align=center>__vprintf</h2> <h4 align=center>OS/161 Reference Manual</h4> <h3>Name</h3> __vprintf - printf backend <h3>Library</h3> Standard C Library (libc, -lc) <h3>Synopsis</h3> #include <unistd.h><br> <br> int<br> __vprintf(void (*<em>func</em>)(void *<em>clientdata</em>, const char *<em>str</em>, size_t <em>len</em>), void *<em>clientdata</em>, const char *<em>format</em>, va_list) <h3>Description</h3> In OS/161, __vprintf is the back-end engine for <A HREF=printf.html>printf</A> and printf-like functions. Note that it is not portable - application code should use <A HREF=snprintf.html>snprintf or vsnprintf</A> when implementing their own printf-like functions. This documentation is provided for use when extending OS/161 itself. <p> The <em>format</em> and subsequent arguments are treated as described under <A HREF=printf.html>printf</A>. <p> The <em>func</em> argument is called to print text generated by the formatting process. The <em>clientdata</em> argument is passed straight through __vprintf to <em>func</em>. The <em>str</em> argument to func points to some text that is to be printed; the <em>len</em> argument is the length of that string, which should not be assumed to be null-terminated. <p> The strings passed to <em>func</em> may be small; if printing is expensive buffering is probably indicated. <h3>Return Values</h3> __vprintf returns the number of characters printed. </body> </html>