->

vfprintf()

vfprintf() ist in der stdio definiert, die in C über stdio.h, bzw in C++ über cstdio eingebunden wird.

Funktion

vfprintf() wird dazu verwendet, um einen String aus einem FormatString zu erzeugen und anschließend auf einem Ausgabestream (FILE) auszugeben.
vfprintf() kann als Kombination von vsprintf() und fputs() verstanden werden.

Signatur

#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: Formatstring, 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.

Fehlerquellen

-

Beispiel

#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'

siehe auch