Linux |
CentOS 4.8 |
|
asprintf(3) |
asprintf, vasprintf − Ecriture formatée dans une chaîne allouée |
#define _GNU_SOURCE int asprintf(char **strp, const char *fmt, ...); int vasprintf(char **strp, const char *fmt, va_list ap); |
Les fonctions asprintf et vasprintf sont similaires à sprintf et vsprintf, si ce n’est qu’elles allouent une chaîne de caractères de taille suffisante pour contenir la sortie, y compris le NUL 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. |
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. |
Ces fonctions sont des extensions GNU et sont absentes des standards C et POSIX. Elles sont également disponibles sous *BSD. L’implantation FreeBSD affecte à strp la valeur NULL en cas d’erreur. |
free(3), malloc(3), printf(3) |
Stéphan Rafin, 2002. |
asprintf(3) |