snprintf dengan malloc


size_t required_size = snprintf(NULL, 0, "%s: %s (%d)", msg, strerror(errno), errno) + 1;
char  *buffer = malloc(needed);
sprintf(buffer, "%s: %s (%d)", msg, strerror(errno), errno);
   
Muddy Manatee