initial check-in, version 0.5.0
[musl] / src / temp / mkdtemp.c
1 #include <string.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <fcntl.h>
5 #include <unistd.h>
6 #include <limits.h>
7 #include <errno.h>
8 #include <sys/stat.h>
9 #include "libc.h"
10
11 char *mkdtemp(char *template)
12 {
13         for (;;) {
14                 if (!mktemp(template)) return 0;
15                 if (!mkdir(template, 0700)) return template;
16                 if (errno != EEXIST) return 0;
17                 /* this is safe because mktemp verified
18                  * that we have a valid template string */
19                 strcpy(template+strlen(template)-6, "XXXXXX");
20         }
21 }