_mktemp.c

来自「操作系统源代码」· C语言 代码 · 共 35 行

C
35
字号
/* mktemp - make a name for a temporary file */#include <lib.h>#define access	_access#define getpid	_getpid#define mktemp	_mktemp#include <unistd.h>PUBLIC char *mktemp(template)char *template;{  register int k;  register char *p;  register pid_t pid;  pid = getpid();		/* get process id as semi-unique number */  p = template;  while (*p != 0) p++;		/* find end of string */  /* Replace XXXXXX at end of template with a letter, then as many of the   * trailing digits of the pid as fit.   */  while (*--p == 'X') {	*p = '0' + (pid % 10);	pid /= 10;  }  if (*++p != 0) {	for (k = 'a'; k <= 'z'; k++) {		*p = k;		if (access(template, F_OK) < 0) return(template);	}  }  return("/");}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?