ASPRINTF(3)

NOM
asprintf, vasprintf - Écriture formatée dans une chaîne allouée

SYNOPSIS
#define _GNU_SOURCE
#include <stdio.h>

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

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

DESCRIPTION
Les fonctions asprintf() et vasprintf() sont similaires à sprintf(3) et vsprintf(3), si ce n'est qu'elles allouent une chaîne de caractères de taille suffisante pour contenir la sortie, y compris l'octet NULL terminal, et qu'elles renvoient un pointeur vers cette chaîne via le premier paramètre. Ce pointeur devra être passé en paramètre à free(3) afin de libérer la zone allouée lorsqu'elle ne sera plus nécessaire.

VALEUR RENVOYÉE
En cas de succès, ces fonctions renvoient le nombre de caractères imprimés, tout comme sprintf(3). Si l'allocation mémoire n'a pas été possible, ou qu'une autre erreur est survenue, ces fonctions renvoient -1 et la valeur de strp est indéfinie.

CONFORMITÉ
Ces fonctions sont des extensions GNU et sont absentes des normes C et POSIX. Elles sont également disponibles sous BSD. L'implémentation FreeBSD affecte à strp la valeur NULL en cas d'erreur.

VOIR AUSSI
free(3), malloc(3), printf(3), feature_test_macros(7)

TRADUCTION

Ce document est une traduction réalisée par Stéphan Rafin <stephan DOT rafin AT laposte DOT net> le 19 avril 2002 et révisée le 17 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 asprintf ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.