->

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 FormatString 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: 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( 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