vfprintf() ist in der stdio definiert, die in C über stdio.h, bzw in C++ über cstdio eingebunden wird.
vfprintf() wird dazu verwendet, um einen String aus einem Platzhalter für String-Funktionen zu erzeugen und anschließend auf einem Ausgabestream (FILE) auszugeben.
vfprintf() kann als Kombination von vsprintf() und fputs() verstanden werden.
#include <stdio.h> int vfprintf( FILE * file, char const * formatString, va_list args );
file: FileHandle, das die Datei beschreibt, in die geschrieben wird. (siehe fopen()) 
formatString: Platzhalter für String-Funktionen, der beschreibt, wie der String zusammengesetzt wird 
args: Eine Liste von Argumenten 
Return Value: Die Länge des Strings im Erfolgsfall (das angehängte Nullbyte wird nicht mitgezählt) oder eine negative Zahl im Fehlerfall.
-
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <stdarg.h> #include <string.h> int error( FILE * file, char const * format, ... ) { va_list args; int n; fputs( "Error: ", file ); va_start( args, format ); n = vfprintf( file, format, args ); fputs( "\n", file ); va_end( args ); return n; } int main (void) { char const * filename = "nicht-existierende-datei"; FILE * file = fopen( filename, "r+" ); if( !file ) error( stdout, "Could not open '%s'", filename ); else fclose( file ); return EXIT_SUCCESS; }
Ausgabe:
Error: Could not open 'nicht-existierende-datei'