summaryrefslogtreecommitdiff
path: root/sys/src/ape/lib/ap/stdio/tmpnam.c
blob: 6ab301378bbe5e4f2c45a6d0a2ddf3dd95b6e366 (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
32
33
/*
 * pANS stdio -- tmpnam
 */
#include "iolib.h"
#include <string.h>

char *
tmpnam(char *s)
{
	static char name[] = "/tmp/tn000000000000";
	char *p;

	do {
		p = name + 7;
		while (*p == '9')
			*p++ = '0';
		if (*p == '\0')
			return NULL;
		++*p;
	} while (access(name, 0) == 0);
	if (s) {
		strcpy(s, name);
		return s;
	}
	return name;
}


char *
tmpnam_r(char *s)
{
	return s ? tmpnam(s) : NULL;
}