mktemp.c 508 B

123456789101112131415161718192021222324252627
  1. /* $Id$ */
  2. /* mktemp - make a name for a temporary file */
  3. char *mktemp(template)
  4. char *template;
  5. {
  6. register int pid, k;
  7. register char *p;
  8. pid = getpid(); /* get process id as semi-unique number */
  9. p = template;
  10. while (*p) p++; /* find end of string */
  11. /* Replace XXXXXX at end of template with pid. */
  12. while (*--p == 'X') {
  13. *p = '0' + (pid % 10);
  14. pid /= 10;
  15. }
  16. p++;
  17. for (k = 'a'; k <= 'z'; k++) {
  18. *p = k;
  19. if (access(template, 0) < 0) {
  20. return template;
  21. }
  22. }
  23. return("/");
  24. }