1
0
Files
irix-657m-src/eoe/cmd/Mail/getname.c
2022-09-29 17:59:04 +03:00

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;
}