⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tempnam.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
/*	@(#)tempnam.c	1.1	*//*LINTLIBRARY*/#include <stdio.h>#include <string.h>#define max(A,B) (((A)<(B))?(B):(A))extern char *malloc(), *getenv(), *mktemp();extern int access();static char *pcopy(), *seed="AAA";char *tempnam(dir, pfx)char *dir;		/* use this directory please (if non-NULL) */char *pfx;		/* use this (if non-NULL) as filename prefix */{	register char *p, *q, *tdir;	int x=0, y=0, z;	z=strlen(P_tmpdir);	if((tdir = getenv("TMPDIR")) != NULL) {		x = strlen(tdir);	}	if(dir != NULL) {		y=strlen(dir);	}	if((p=malloc((unsigned)(max(max(x,y),z)+16))) == NULL)		return(NULL);	if(x > 0 && access(pcopy(p, tdir), 3) == 0)		goto OK;	if(y > 0 && access(pcopy(p, dir), 3) == 0)		goto OK;	if(access(pcopy(p, P_tmpdir), 3) == 0)		goto OK;	if(access(pcopy(p, "/tmp"), 3) != 0)		return(NULL);OK:	(void)strcat(p, "/");	if(pfx) {		*(p+strlen(p)+5) = '\0';		(void)strncat(p, pfx, 5);	}	(void)strcat(p, seed);	(void)strcat(p, "XXXXXX");	q = seed;	while(*q == 'Z')		*q++ = 'A';	++*q;	if(*mktemp(p) == '\0')		return(NULL);	return(p);}static char*pcopy(space, arg)char *space, *arg;{	char *p;	if(arg) {		(void)strcpy(space, arg);		p = space-1+strlen(space);		if(*p == '/')			*p = '\0';	}	return(space);}

⌨️ 快捷键说明

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