File: tmpnam.c

package info (click to toggle)
dietlibc 0.34~cvs20160606-10
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 11,336 kB
  • sloc: ansic: 71,631; asm: 13,006; cpp: 1,860; makefile: 799; sh: 292; perl: 62
file content (31 lines) | stat: -rw-r--r-- 646 bytes parent folder | download | duplicates (4)
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 ss;
    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,&ss)==-1 && errno==ENOENT) break;
  }
  return tmp;
}