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