xref: /original-bsd/lib/libc/gen/getlogin.c (revision 62734ea8)
1 /*	getlogin.c	4.2	82/11/14	*/
2 
3 #include <utmp.h>
4 
5 static	char UTMP[]	= "/etc/utmp";
6 static	struct utmp ubuf;
7 
8 char *
9 getlogin()
10 {
11 	register int me, uf;
12 	register char *cp;
13 
14 	if (!(me = ttyslot()))
15 		return(0);
16 	if ((uf = open(UTMP, 0)) < 0)
17 		return (0);
18 	lseek (uf, (long)(me*sizeof(ubuf)), 0);
19 	if (read(uf, (char *)&ubuf, sizeof (ubuf)) != sizeof (ubuf)) {
20 		close(uf);
21 		return (0);
22 	}
23 	close(uf);
24 	ubuf.ut_name[sizeof (ubuf.ut_name)] = ' ';
25 	for (cp = ubuf.ut_name; *cp++ != ' '; )
26 		;
27 	*--cp = '\0';
28 	return (ubuf.ut_name);
29 }
30