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

📄 nametest.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "all.h"void	mapinit(char*, char*);int	debug;int	rpcdebug;int	style = 'u';Biobuf *in;Unixid *ids;Unixid **pids;Unixidmap *mp;voidmain(int argc, char **argv){	int id, arc; char *arv[4];	char *l, *name;	chatty = 1;	ARGBEGIN{	case '9':	case 'u':		style = ARGC();		break;	case 'D':		++debug;		break;	}ARGEND	if(argc <= 0){		ids = readunixids("/fd/0", style);		if(ids)			idprint(1, ids);		exits(ids ? 0 : "readunixids");	}	mapinit(argv[0], 0);	in = Bopen("/fd/0", OREAD);	while(l = Brdline(in, '\n')){	/* assign = */		l[Blinelen(in)-1] = 0;		arc = strparse(l, nelem(arv), arv);		if(arc <= 0)			continue;		switch(arv[0][0]){		case 'r':			if(arc < 2)				continue;			mapinit(arv[1], arv[2]);			break;		case 'i':			if(arc < 2)				continue;			id = strtol(arv[1], 0, 10);			name = id2name(pids, id);			print("%d -> %s\n", id, name);			break;		case 'n':			if(arc < 2)				continue;			name = arv[1];			id = name2id(pids, name);			print("%s -> %d\n", name, id);			break;		case 'p':			print("server=%s, client=%s\n", mp->server, mp->client);			break;		case 'P':			idprint(1, *pids);			break;		case 'u':			pids = &mp->u.ids;			print("users...\n");			break;		case 'g':			pids = &mp->g.ids;			print("groups...\n");			break;		}	}	exits(0);}voidmapinit(char *file, char *client){	if(file){		print("reading %s...\n", file);		if(readunixidmaps(file) < 0)			exits("readunixidmaps");		if(!client)		client = "nslocum.research.bell-labs.com";	}	print("client = %s...\n", client);	mp = pair2idmap("bootes", client, 0);	if(mp == 0){		fprint(2, "%s: pair2idmap failed\n", argv0);		exits("pair2idmap");	}	pids = &mp->u.ids;	print("[users...]\n");}

⌨️ 快捷键说明

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