ref: 32a879ca58c048a3d09380d6d74d242ffe7bffd2
dir: /src/Helpers/FopenFormatted.cpp/
#include "FopenFormatted.h"
#include "../Attributes.h"
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
ATTRIBUTE_FORMAT(printf, 2, 3) ATTRIBUTE_WARN_UNUSED_RESULT FILE *fopenFormatted(const char *mode, const char *format_string, ...)
{
// Handle variadic arguments and redirect to vasprintf
va_list arguments_local;
va_start(arguments_local, format_string);
char *path;
int vasprintf_retval = vasprintf(&path, format_string, arguments_local);
va_end(arguments_local); // Destroy arguments_local
if (vasprintf_retval < 0)
return NULL;
FILE *file = fopen(path, mode);
free(path);
return file;
}