ensure standard functions mk[sd]temp don't depend on removed function mktemp
[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 *__mktemp(char *);
12
13 char *mkdtemp(char *template)
14 {
15         for (;;) {
16                 if (!__mktemp(template)) return 0;
17                 if (!mkdir(template, 0700)) return template;
18                 if (errno != EEXIST) return 0;
19                 /* this is safe because mktemp verified
20                  * that we have a valid template string */
21                 strcpy(template+strlen(template)-6, "XXXXXX");
22         }
23 }