ASPRINTF(3)

NAME
asprintf, vasprintf - Ausgabe in allokierte Zeichenkette

ÜBERSICHT
#define _GNU_SOURCE
#include <stdio.h>

int asprintf(char **strp, const char *fmt, ...);

int vasprintf(char **strp, const char *fmt, va_list ap);

BESCHREIBUNG
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.

RÜCKGABEWERT
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.

ANMERKUNGEN
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.

SIEHE AUCH
free(3), malloc(3), printf(3).