Home | History | Annotate | Download | only in lib
      1 /*
      2  * vasprintf.c
      3  */
      4 
      5 #include <stdio.h>
      6 #include <stdlib.h>
      7 #include <stdarg.h>
      8 
      9 int vasprintf(char **bufp, const char *format, va_list ap)
     10 {
     11     va_list ap1;
     12     int bytes;
     13     char *p;
     14 
     15     va_copy(ap1, ap);
     16 
     17     bytes = vsnprintf(NULL, 0, format, ap1) + 1;
     18     va_end(ap1);
     19 
     20     *bufp = p = malloc(bytes);
     21     if (!p)
     22 	return -1;
     23 
     24     return vsnprintf(p, bytes, format, ap);
     25 }
     26