#include "ft_printf_internal.h" int ft_aprintf(char** output, char* format, ...) { va_list args; int result; va_start(args, format); result = ft_vaprintf(output, format, args); va_end(args); return result; } int ft_vaprintf(char** output, char* format, va_list args) { struct printf_data params; params.fd = -1; params.written = 0; params.inputBuffer = format; params.outputBuffer = NULL; params.bufferMaxSize = 0; params.realloc = 1; params.fdBuffer = NULL; params.bufferPos = 0; while (*params.inputBuffer) { if (doPrintf(¶ms, args) < 0) return -1; } flushBuffer(¶ms); *output = params.outputBuffer; return params.written; }