59 lines
1.1 KiB
C
59 lines
1.1 KiB
C
/*
|
|
* Copyright (c) 1980 Regents of the University of California.
|
|
* All rights reserved. The Berkeley software License Agreement
|
|
* specifies the terms and conditions for redistribution.
|
|
*/
|
|
|
|
#ifndef lint
|
|
static char *sccsid = "@(#)getname.c 5.2 (Berkeley) 6/21/85";
|
|
#endif /* !lint */
|
|
|
|
#include <pwd.h>
|
|
|
|
/*
|
|
* Getname / getuserid for those with
|
|
* hashed passwd data base).
|
|
*
|
|
*/
|
|
|
|
#include "glob.h"
|
|
|
|
/*
|
|
* Search the passwd file for a uid. Return name through ref parameter
|
|
* if found, indicating success with 0 return. Return -1 on error.
|
|
* If -1 is passed as the user id, close the passwd file.
|
|
*/
|
|
|
|
getname(uid, namebuf)
|
|
char namebuf[];
|
|
{
|
|
struct passwd *pw;
|
|
|
|
if (uid == -1) {
|
|
return(0);
|
|
}
|
|
if ((pw = getpwuid(uid)) == NULL)
|
|
return(-1);
|
|
strncpy(namebuf, pw->pw_name, PATHSIZE);
|
|
namebuf[PATHSIZE - 1] = '\0';
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* Convert the passed name to a user id and return it. Return -1
|
|
* on error. Iff the name passed is -1 (yech) close the pwfile.
|
|
*/
|
|
|
|
getuserid(name)
|
|
char name[];
|
|
{
|
|
struct passwd *pw;
|
|
|
|
if (name == (char *) -1) {
|
|
return(0);
|
|
}
|
|
if ((pw = getpwnam(name)) == NULL)
|
|
return 0;
|
|
return pw->pw_uid;
|
|
}
|