#include <stdio.h>#ifndef L_tmpnam#define L_tmpnam 100#endif#ifndef P_tmpdir#define P_tmpdir "/usr/tmp"#endifstatic char tmpnam_buffer[L_tmpnam];static int tmpnam_counter;extern int getpid ();char *tmpnam (s)char *s;{int pid = getpid ();if (s == NULL)s = tmpnam_buffer;/* Generate the filename and make sure that there isn't one calledit 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;}