📄 uidtonam.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 + -