#define _GNU_SOURCE
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>

char* __randname(char*);

char* mktemp(char* template) {
  size_t l = strlen(template);
  int retries = 100;
  struct stat st;

  if (l < 6 || memcmp(template + l - 6, "XXXXXX", 6)) {
    errno = EINVAL;
    *template = 0;
    return template;
  }

  do {
    __randname(template + l - 6);
    if (stat(template, &st)) {
      if (errno != ENOENT)
        *template = 0;
      return template;
    }
  } while (--retries);

  *template = 0;
  errno = EEXIST;
  return template;
}
