====== vsprintf() ======
''vsprintf()'' ist in der ''[[c:lib:stdio:start|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
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
#include
#include
#include
#include
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 =====
[[c:lib:stdio:start|stdio]]: [[c:lib:stdio:vprintf()]], [[c:lib:stdio:fprintf()]], [[c:lib:stdio:vfprintf()]], [[c:lib:stdio:sprintf()]], [[c:lib:stdio:puts()]], [[c:lib:stdio:fwrite()]] \\
[[c:lib:stdarg:start|stdarg]]: [[c:lib:stdarg:va_list]], [[c:lib:stdarg:va_start]], [[c:lib:stdarg:va_end]]