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

📄 uidtonam.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
/*	Copyright (c) 1984 AT&T	*//*	  All Rights Reserved  	*//*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*//*	The copyright notice above does not evidence any   	*//*	actual or intended publication of such source code.	*/#ident	"@(#)uidtonam.c 1.1 92/07/30 SMI" /* from S5R3 acct:lib/uidtonam.c 1.3 *//* * convert uid to login name; interface to getpwuid that keeps up to USIZE1 * names to avoid unnecessary accesses to passwd file * returns ptr to NSZ-byte name (not necessarily null-terminated) * returns ptr to "?" if cannot convert */#include "acctdef.h"#include <sys/types.h>#include <stdio.h>#include <pwd.h>#define USIZE1	50static	usize1;static struct ulist {	char	uname[NSZ];	uid_t	uuid;} ul[USIZE1];char *uidtonam(uid)uid_t	uid;{	register struct ulist *up;	struct passwd *getpwuid();	register struct passwd *pp;	for (up = ul; up < &ul[usize1]; up++)		if (uid == up->uuid)			return(up->uname);	setpwent();	if ((pp = getpwuid(uid)) == NULL)		return("?");	else {		if (usize1 < USIZE1) {			up->uuid = uid;			CPYN(up->uname, pp->pw_name);			usize1++;		}		return(pp->pw_name);	}}

⌨️ 快捷键说明

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