1*26558Sdonn #if defined(LIBC_SCCS) && !defined(lint) 2*26558Sdonn static char sccsid[] = "@(#)getlogin.c 5.2 (Berkeley) 03/09/86"; 3*26558Sdonn #endif LIBC_SCCS and not lint 49193Ssam 59109Ssam #include <utmp.h> 69109Ssam 79193Ssam static char UTMP[] = "/etc/utmp"; 89193Ssam static struct utmp ubuf; 99109Ssam 109109Ssam char * 119109Ssam getlogin() 129109Ssam { 139193Ssam register int me, uf; 149109Ssam register char *cp; 159109Ssam 169193Ssam if (!(me = ttyslot())) 179109Ssam return(0); 189193Ssam if ((uf = open(UTMP, 0)) < 0) 199193Ssam return (0); 209193Ssam lseek (uf, (long)(me*sizeof(ubuf)), 0); 219193Ssam if (read(uf, (char *)&ubuf, sizeof (ubuf)) != sizeof (ubuf)) { 229193Ssam close(uf); 239193Ssam return (0); 249193Ssam } 259109Ssam close(uf); 269109Ssam ubuf.ut_name[sizeof (ubuf.ut_name)] = ' '; 279193Ssam for (cp = ubuf.ut_name; *cp++ != ' '; ) 289109Ssam ; 299109Ssam *--cp = '\0'; 309193Ssam return (ubuf.ut_name); 319109Ssam } 32