Write formatted output to a file (varargs)
#include <stdio.h> #include <stdarg.h> int vfprintf( FILE* fp, const char* format, va_list arg );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The vfprintf() function writes output to the file pointed to by fp, under control of the argument format.
The vfprintf() function is a “varargs” version of fprintf().
The number of characters written, or a negative value if an output error occurred (errno is set).
#include <stdio.h> #include <stdlib.h> #include <stdarg.h> FILE *LogFile; /* a general error routine */ void errmsg( const char *format, ... ) { va_list arglist; fprintf( stderr, "Error: " ); va_start( arglist, format ); vfprintf( stderr, format, arglist ); va_end( arglist ); if( LogFile != NULL ) { fprintf( LogFile, "Error: " ); va_start( arglist, format ); vfprintf( LogFile, format, arglist ); va_end( arglist ); } } int main( void ) { LogFile = fopen( "error.log", "w" ); errmsg( "%s %d %s", "Failed", 100, "times" ); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
errno, fprintf(), fwprintf(), printf(), snprintf(), sprintf(), swprintf(), va_start(), vfwprintf(), vprintf(), vsnprintf(), vsprintf(), vswprintf(), vwprintf(), wprintf()