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

📄 tempnam.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#if !defined(lint) && defined(SCCSIDS)static	char sccsid[] = "@(#)tempnam.c 1.1 92/07/30 SMI"; /* from S5R2 1.1 */#endif/*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();static char seed[3];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;	if (seed[0] == 0)		seed[0] = seed[1] = seed[2] = 'A';	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 + -