This is just a choice of having to provide an output buffer to the function instead of returning a new buffer since it's easier to inject custom allocator behaviour that way
void my_sprintf(char* format, ???) {
sprintf(format, ???);
}Either way, the format string discussion for the printf familiy of functions is very similar between them
Thanks!