ASPRINTF(3) Bibliotheksfunktionen ASPRINTF(3)
asprintf, vasprintf - Ausgabe in allokierte Zeichenkette
#define _GNU_SOURCE
#include <stdio.h>
int asprintf(char **strp, const char *fmt, ...);
int vasprintf(char **strp, const char *fmt, va_list ap);
Die Funktionen asprintf und vasprintf sind analog zu sprintf und
vsprintf mit der Ausnahme, dass sie Speicherplatz für die Zeichenkette
allokieren, der ausreichend groß ist, um die Ausgabe inklusive des
abschließenden NUL-Zeichens aufzunehmen. Ein Zeiger darauf wird über
den ersten Parameter zurückgegeben. Dieser Zeiger sollte an free(3)
übergeben werden, um den belegten Speicherbereich wieder freizugeben,
wenn er nicht mehr benötigt wird.
Wenn erfolgreich, geben diese Funktionen die Anzahl von ausgegebenen
Bytes zurück, wie bei sprintf(3). Wenn die Speicherzuteilung nicht
möglich war, oder andere Fehler auftreten, geben diese Funktionen -1
zurück und der Inhalt von strp ist undefiniert.
Diese Funktionen sind GNU Erweiterungen und nicht in C oder POSIX
definiert. Sie sind ebenso verfügbar unter *BSD. Die Implementation
unter FreeBSD setzt strp bei Fehler auf NULL.
free(3), malloc(3), printf(3).
GNU 25. November 2004 ASPRINTF(3)