#if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)getlogin.c 5.3 (Berkeley) 5/9/86"; #endif LIBC_SCCS and not lint #include static char UTMP[] = "/etc/utmp"; static struct utmp ubuf; char * getlogin() { register int me, uf; register char *cp; if (!(me = ttyslot())) return(0); if ((uf = open(UTMP, 0)) < 0) return (0); lseek (uf, (long)(me*sizeof(ubuf)), 0); if (read(uf, (char *)&ubuf, sizeof (ubuf)) != sizeof (ubuf)) { close(uf); return (0); } close(uf); if (ubuf.ut_name[0] == '\0') return (0); ubuf.ut_name[sizeof (ubuf.ut_name)] = ' '; for (cp = ubuf.ut_name; *cp++ != ' '; ) ; *--cp = '\0'; return (ubuf.ut_name); }