URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [newlib-1.10.0/] [newlib/] [libc/] [unix/] [getlogin.c] - Rev 1773
Go to most recent revision | Compare with Previous | Blame | View Log
#include <string.h> #include <unistd.h> #include <sys/types.h> #include <utmp.h> #include <fcntl.h> #include <_syslist.h> char * getlogin () { int utmp_fd; struct utmp utmp_buf; static char buf[10]; extern char *ttyname (); char *tty; if (((tty = ttyname (0)) == 0) || ((tty = ttyname (1)) == 0) || ((tty = ttyname (2)) == 0)) return 0; if ((utmp_fd = _open (UTMP_FILE, O_RDONLY)) == -1) return 0; if (!strncmp (tty, "/dev/", 5)) tty += 5; while (_read (utmp_fd, &utmp_buf, sizeof (utmp_buf)) == sizeof (utmp_buf)) { if (!strncmp (tty, utmp_buf.ut_line, sizeof (utmp_buf.ut_line)) && utmp_buf.ut_type == USER_PROCESS) { _close (utmp_fd); memset (buf, 0, sizeof (buf)); strncpy (buf, utmp_buf.ut_user, sizeof (utmp_buf.ut_user)); return buf; } } _close (utmp_fd); return 0; }
Go to most recent revision | Compare with Previous | Blame | View Log