asprintf(3)
imprimen en una cadena reservada
SINOPSIS
#define _GNU_SOURCE
#include <stdio.h>
int asprintf(char **strp, const char *fmt, ...);
int vasprintf(char **strp, const char *fmt, va_list ap);
DESCRIPCIÓN
Las funciones
asprintf
y
vasprintf
son análogas a
sprintf
y
vsprintf,
salvo porque reservan una cadena lo suficientemente grande para almacenar
la salida incluyendo el carácter NUL del final,
y devuelven un puntero a ella a través del primer parámetro.
Este puntero debe ser pasado a
free(3)
para liberar la memoria asignada cuando ya no se necesite.
VALOR DEVUELTO
Cuando tienen éxito, estas funciones devuelven el número de bytes impresos,
al igual que
sprintf(3).
Si la reserva de memoria no se pudo llevar a cabo, o ocurre algun otro error,
estas funciones devuelven -1, y el contenido de
strp
queda indefinido.
OBSERVACIONES
Estas funciones son extensiones de GNU, no están disponibles ni en C ni en POSIX.
También están disponibles bajo *BSD.
La implementación de FreeBSD asigna a
strp
el valor NULL en caso de error.