ref: b6e966d03ba5e331dae9fae1b05a9f97f9a1e272
dir: /sys/src/libc/port/mktemp.c/
#include <u.h> #include <libc.h> char* mktemp(char *as) { char *s; unsigned pid; int i; char err[ERRMAX]; pid = getpid(); s = as; while(*s++) ; s--; while(*--s == 'X') { *s = pid % 10 + '0'; pid = pid/10; } s++; i = 'a'; while(access(as, 0) != -1) { if (i == 'z') return "/"; *s = i++; } err[0] = '\0'; errstr(err, sizeof err); /* clear the error */ return as; }