Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

mprintf.c

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    mprintf.c 466 B
    #include <stdio.h>
    #include <stdarg.h>
    #include <stdlib.h>
    
    #include "../util.h"
    
    char *vmprintf(const char *fmt, va_list ap)
    {
    	char *ptr;
    	size_t size;
    	FILE *stream;
    	ptr = 0;
    	size = 0;
    	if (!(stream = open_memstream(&ptr, &size)))
    		exit(99);
    	if (vfprintf(stream, fmt, ap) < 0)
    		exit(99);
    	fclose(stream);
    	return ptr;
    }
    
    char *mprintf(const char *fmt, ...)
    {
    	char *ret;
    	va_list ap;
    	va_start(ap, fmt);
    	ret = vmprintf(fmt, ap);
    	va_end(ap);
    	return ret;
    }