vsprintf()

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

Funktion

vsprintf() wird dazu verwendet, um einen String aus einem Platzhalter für String-Funktionen zu erzeugen. Hierfür wird in den Buffer, der als erstes Argument übergeben wird, der Formatstring kopiert und die Substitutionszeichen mit dem gegebenen Parametern ersetzt.

Signatur

#include <stdio.h>
int vsprintf( char * buffer, char const * formatString, va_list args );

buffer: Zeiger auf einen Speicherbereich, in dem der String zusammenkopiert wird
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.

Fehlerquellen

-

Beispiel

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <stdarg.h>
#include <string.h>
 
int error( char const * format, ... )
{
  char buffer[256];
  va_list args;
 
  va_start( args, format );
  vsprintf( buffer, format, args );
  va_end( args );
 
  return fprintf( stderr, "Code %d (%s): %s\n", errno, strerror( errno ), buffer );
}
 
int main (void)
{
  char const * filename = "nicht-existierende-datei";
 
  FILE * file = fopen( filename, "r+" );
 
  if( !file )
    error( "Could not open '%s'", filename );
  else
    fclose( file );
 
   return EXIT_SUCCESS;
}

Ausgabe (auf der Standard-Fehler-Konsole):

Code 2 (No such file or directory): Could not open 'nicht-existierende-datei'

siehe auch