xref: /csrg-svn/lib/libc/gen/getlogin.c (revision 9193)
1*9193Ssam /*	getlogin.c	4.2	82/11/14	*/
2*9193Ssam 
39109Ssam #include <utmp.h>
49109Ssam 
5*9193Ssam static	char UTMP[]	= "/etc/utmp";
6*9193Ssam static	struct utmp ubuf;
79109Ssam 
89109Ssam char *
99109Ssam getlogin()
109109Ssam {
11*9193Ssam 	register int me, uf;
129109Ssam 	register char *cp;
139109Ssam 
14*9193Ssam 	if (!(me = ttyslot()))
159109Ssam 		return(0);
16*9193Ssam 	if ((uf = open(UTMP, 0)) < 0)
17*9193Ssam 		return (0);
18*9193Ssam 	lseek (uf, (long)(me*sizeof(ubuf)), 0);
19*9193Ssam 	if (read(uf, (char *)&ubuf, sizeof (ubuf)) != sizeof (ubuf)) {
20*9193Ssam 		close(uf);
21*9193Ssam 		return (0);
22*9193Ssam 	}
239109Ssam 	close(uf);
249109Ssam 	ubuf.ut_name[sizeof (ubuf.ut_name)] = ' ';
25*9193Ssam 	for (cp = ubuf.ut_name; *cp++ != ' '; )
269109Ssam 		;
279109Ssam 	*--cp = '\0';
28*9193Ssam 	return (ubuf.ut_name);
299109Ssam }
30