reduce size of devname entry
[unix-history] / usr / src / lib / libc / gen / getlogin.c
CommitLineData
05e7d7bc
KF
1/*
2 * Copyright (c) 1988 The Regents of the University of California.
3 * All rights reserved.
4 *
269a7923 5 * %sccs.include.redist.c%
05e7d7bc
KF
6 */
7
2ce81398 8#if defined(LIBC_SCCS) && !defined(lint)
0373dae5 9static char sccsid[] = "@(#)getlogin.c 5.8 (Berkeley) %G%";
05e7d7bc 10#endif /* LIBC_SCCS and not lint */
056d5bbd 11
0373dae5 12#include <sys/param.h>
05e7d7bc
KF
13#include <stdio.h>
14#include <pwd.h>
d144c87e
SL
15#include <utmp.h>
16
e24b3d64 17int _logname_valid; /* known to setlogin() */
d144c87e
SL
18
19char *
20getlogin()
21{
0373dae5 22 static char logname[MAXLOGNAME + 1];
05e7d7bc 23
e24b3d64
MK
24 if (_logname_valid == 0) {
25 if (_getlogin(logname, sizeof(logname) - 1) < 0)
26 return ((char *)NULL);
27 _logname_valid = 1;
05e7d7bc 28 }
e24b3d64 29 return (*logname ? logname : (char *)NULL);
05e7d7bc
KF
30}
31
32uid_t geteuid();
33
34char *
35cuserid(s)
e24b3d64 36 char *s;
05e7d7bc
KF
37{
38 register struct passwd *pwd;
39
e658abae
KB
40 if ((pwd = getpwuid(geteuid())) == NULL) {
41 if (s)
05e7d7bc 42 *s = '\0';
e24b3d64 43 return (s);
05e7d7bc 44 }
e658abae
KB
45 if (s) {
46 (void)strncpy(s, pwd->pw_name, L_cuserid);
e24b3d64 47 return (s);
056d5bbd 48 }
e24b3d64 49 return (pwd->pw_name);
d144c87e 50}