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

📄 expfile.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
#include "uucp.h"#include <sys/types.h>#include <sys/stat.h>/******* *	expfile(file)	expand file name *	char *file; * *	return codes:  none */expfile(file)char *file;{	char *fpart;	char user[20], *up;	char full[100];	int uid;	switch(file[0]) {	case '/':		return;	case '~':		for (fpart = file + 1, up = user; *fpart != '\0'			&& *fpart != '/'; fpart++)				*up++ = *fpart;		*up = '\0';		if (gninfo(user, &uid, full) != 0) {			strcpy(full, Spool);		}			strcat(full, fpart);		strcpy(file, full);		return;	default:		strcpy(full, Wrkdir);		strcat(full, "/");		strcat(full, file);		strcpy(file, full);		return;	}}/*** *	isdir(name)	check if directory name *	char *name; * *	return codes:  0 - not directory  |  1 - is directory */isdir(name)char *name;{	int ret;	struct stat s;	ret = stat(name, &s);	if (ret < 0)		return(0);	if ((s.st_mode & S_IFMT) == S_IFDIR)		return(1);	return(0);}/*** *	mkdirs(name)	make all necessary directories *	char *name; * *	return 0  |  FAIL */mkdirs(name)char *name;{	int ret;	char cmd[100], dir[100], *p;	for (p = dir + 1;; p++) {		strcpy(dir, name);		if ((p = index(p, '/')) == NULL)			return(0);		*p = '\0';		if (isdir(dir))			continue;		sprintf(cmd, "mkdir %s", dir);		DEBUG(4, "mkdir - %s\n", dir);		ret = shio(cmd, NULL, NULL, User);		if (ret != 0)			return(FAIL);	}}

⌨️ 快捷键说明

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