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