asprintf, vasprintf - Ausgabe in reservierte Zeichenkette
Standard-C-Bibliothek (
libc,
-lc)
#define _GNU_SOURCE /* siehe feature_test_macros(7) */
#include <stdio.h>
int asprintf(char **restrict strp, const char *restrict fmt, …);
int vasprintf(char **restrict strp, const char *restrict fmt,
va_list ap);
Die Funktionen
asprintf() und
vasprintf() sind analog zu
sprintf(3) und
vsprintf(3). Der Unterschied besteht darin, dass
sie ausreichend großen Speicherplatz für die Zeichenkette
reservieren, um die Ausgabe inklusive des abschließenden Nullbytes
(»\0«) aufzunehmen. Ein Zeiger auf den Speicher wird über
den ersten Parameter zurückgegeben. Dieser Zeiger sollte an
free(3) übergeben werden, um den reservierten Speicherbereich
wieder freizugeben, wenn er nicht mehr benötigt wird.
Bei Erfolg geben diese Funktionen, wie auch
sprintf(3), die Anzahl
ausgegebener Bytes zurück. Wenn Fehler auftreten (z.B. eine
gescheiterte Speicherreservierung), geben diese Funktionen -1 zurück.
Dann ist der Inhalt von
strp nicht definiert.
Siehe
attributes(7) für eine Erläuterung der in diesem
Abschnitt verwandten Ausdrücke.
Schnittstelle |
Attribut |
Wert |
asprintf(), vasprintf() |
Multithread-Fähigkeit |
MT-Safe locale |
Diese Funktionen sind GNU-Erweiterungen. Sie sind nicht in C oder POSIX
definiert. Sie sind auch unter *BSD verfügbar. Die
FreeBSD-Implementierung setzt
strp bei Fehlern auf NULL.
free(3),
malloc(3),
printf(3)
Die deutsche Übersetzung dieser Handbuchseite wurde von David Thamm
<
[email protected]>, Martin Schulze <
[email protected]> und Martin
Eberhard Schauer <
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer