#include <stdarg.h> #include <stdio.h> int vprintf( char *format, va_list arg_ptr ); int vfprintf( FILE *stream, const char *format, va_list arg_ptr ); int vsprintf( char *buffer, char *format, va_list arg_ptr );
These functions are very much like printf(), fprintf(), and sprintf(). The difference is that the argument list is a pointer to a list of arguments. va_list is defined in stdarg.h, and is also used by (Other Standard C Functions) va_arg(). For example:
void error( char *fmt, ... ) { va_list args; va_start( args, fmt ); fprintf( stderr, "Error: " ); vfprintf( stderr, fmt, args ); fprintf( stderr, "\n" ); va_end( args ); exit( 1 ); }