Wolfgang Thalleradd binutils-2.20.15d96d8014 years agoHistory
52 lines · 1.0 KB · C
RawDownload
/* @deftypefn Supplemental char* tmpnam (char *@var{s}) This function attempts to create a name for a temporary file, whichwill be a valid file name yet not exist when @code{tmpnam} checks forit.  @var{s} must point to a buffer of at least @code{L_tmpnam} bytes,or be @code{NULL}.  Use of this function creates a security risk, and it mustnot be used in new projects.  Use @code{mkstemp} instead. @end deftypefn */ #include <stdio.h> #ifndef L_tmpnam#define L_tmpnam 100#endif#ifndef P_tmpdir#define P_tmpdir "/usr/tmp"#endif static char tmpnam_buffer[L_tmpnam];static int tmpnam_counter; extern int getpid (void); char *tmpnam (char *s){  int pid = getpid ();   if (s == NULL)    s = tmpnam_buffer;   /*  Generate the filename and make sure that there isn't one called      it already.  */   while (1)    {      FILE *f;      sprintf (s, "%s/%s%x.%x", P_tmpdir, "t", pid, tmpnam_counter);      f = fopen (s, "r");      if (f == NULL)	break;      tmpnam_counter++;      fclose (f);    }   return s;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t