blob: 707730616f7535997a600c273aeca0818789b6d5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include "dietfeatures.h"
#include <errno.h>
#include <sys/stat.h>
#include <dietwarning.h>
#include <stdlib.h>
#include <stdio.h>
link_warning("tmpnam","\e[1;33;41m>>> tmpnam stinks! NEVER ! NEVER USE IT ! <<<\e[0m");
char* tmpnam(char* s) {
static char buf[100];
char *tmp;
if (s) tmp=s; else tmp=buf;
strcpy(tmp,"/tmp/temp_");
for (;;) {
struct stat s;
int i,j;
i=rand();
for (j=0; j<8; ++j) {
char c=i&0xf;
tmp[9+j]=c>9?c+'a'-10:c+'0';
i>>=4;
}
tmp[17]=0;
if (lstat(tmp,&s)==-1 && errno==ENOENT) break;
}
return tmp;
}
|