ref: 355f73cb919d009d7527b5083ae8341f0ceea97d
dir: /src/libc/stdio/tmpnam.c/
#include <sys.h>
#include <stdio.h>
#include <string.h>
#include "../syscall.h"
#undef tmpnam
char *
tmpnam(char *s)
{
static char *tmpl, buf[L_tmpnam];
char *p;
if (*buf == '\0') {
for (tmpl = buf, p = _TMPNAME; *tmpl++ = *p++; )
;
for (p = tmpl; p < &buf[L_tmpnam-1]; ++p)
*p = '0';
*p = '\0';
}
for (;;) {
for (p = tmpl; *p && *p != '9'; ++p)
;
if (*p == '\0')
return NULL;
++*p;
if (_access(buf, F_OK) != 0)
break;
}
if (s)
strcpy(s, buf);
return buf;
}