| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #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;
- }
|