|
|
1.1 root 1: /*
2: * Copyright (c) 1988 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted provided
6: * that: (1) source distributions retain this entire copyright notice and
7: * comment, and (2) distributions including binaries display the following
8: * acknowledgement: ``This product includes software developed by the
9: * University of California, Berkeley and its contributors'' in the
10: * documentation or other materials provided with the distribution and in
11: * all advertising materials mentioning features or use of this software.
12: * Neither the name of the University nor the names of its contributors may
13: * be used to endorse or promote products derived from this software without
14: * specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
16: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
17: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #if defined(LIBC_SCCS) && !defined(lint)
21: static char sccsid[] = "@(#)getlogin.c 5.8 (Berkeley) 6/24/90";
22: #endif /* LIBC_SCCS and not lint */
23:
24: #include <sys/param.h>
25: #include <stdio.h>
26: #include <pwd.h>
27: #include <utmp.h>
28:
29: int _logname_valid; /* known to setlogin() */
30:
31: char *
32: getlogin()
33: {
34: static char logname[MAXLOGNAME + 1];
35:
36: if (_logname_valid == 0) {
37: if (_getlogin(logname, sizeof(logname) - 1) < 0)
38: return ((char *)NULL);
39: _logname_valid = 1;
40: }
41: return (*logname ? logname : (char *)NULL);
42: }
43:
44: uid_t geteuid();
45:
46: char *
47: cuserid(s)
48: char *s;
49: {
50: register struct passwd *pwd;
51:
52: if ((pwd = getpwuid(geteuid())) == NULL) {
53: if (s)
54: *s = '\0';
55: return (s);
56: }
57: if (s) {
58: (void)strncpy(s, pwd->pw_name, L_cuserid);
59: return (s);
60: }
61: return (pwd->pw_name);
62: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.