NOMBRE¶
asprintf, vasprintf - 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.
VÉASE TAMBIÉN¶
free(3),
malloc(3),
printf(3)