📄 getlogin.c
字号:
#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;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -