#define _BSD_SOURCE
+#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
-#include "libc.h"
-
-char *__randname(char *);
int __mkostemps(char *template, int len, int flags)
{
return -1;
}
+ flags -= flags & O_ACCMODE;
int fd, retries = 100;
- while (retries--) {
+ do {
__randname(template+l-len-6);
if ((fd = open(template, flags | O_RDWR | O_CREAT | O_EXCL, 0600))>=0)
return fd;
- if (errno != EEXIST) return -1;
- }
+ } while (--retries && errno == EEXIST);
+
+ memcpy(template+l-len-6, "XXXXXX", 6);
return -1;
}