text: 
  #include <stdarg.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <strings.h>
  
  char *
  smprintf(char *fmt, ...)
  {
  	va_list fmtargs;
  	char *ret;
  	int len;
  
  	va_start(fmtargs, fmt);
  	len = vsnprintf(NULL, 0, fmt, fmtargs);
  	va_end(fmtargs);
  
  	ret = malloc(++len);
  	if (ret == NULL) {
  		perror("malloc");
  		exit(1);
  	}
  
  	va_start(fmtargs, fmt);
  	vsnprintf(ret, len, fmt, fmtargs);
  	va_end(fmtargs);
  
  	return ret;
  }
  
  
  