LOGIN - Linux手册页

时间:2019-08-20 18:00:49  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2017-09-15

名称

login, logout-编写utmp和wtmp条目

语法

#include <utmp.h>
void login(const struct utmp *ut);
int logout(const char *ut_line);

链接使用 -lutil选项.

说明

utmp文件记录当前正在使用系统的人员。 wtmp文件记录所有登录和注销。参见utmp(5)。

函数login()接受提供的结构utmp,ut,并将其写入utmp和wtmp文件。

函数logout()再次清除utmp文件中的条目。

GNU details

更准确地说,login()接受参数ut struct,并使用值USER_PROCESS填充ut-> ut_type字段(如果有这样的字段),并使用调用进程的进程ID。然后,它尝试填充ut-> ut_line字段。它使用作为终端的stdinstdout,stderr中的第一个,并将对应的路径名减去可能的前导/ dev /存储到该字段中,然后将结构写入utmp文件。另一方面,如果未找到终端名称,则在该字段中填充" ???"。并且该结构未写入utmp文件。之后,将结构写入wtmp文件。

logout()函数在utmp文件中搜索与ut_line参数匹配的条目。如果找到记录,则通过将ut_name和ut_host字段清零,更新ut_tv时间戳字段并将ut_type(如果有这样的字段)设置为DEAD_PROCESS来更新。

返回值

如果成功将条目写入数据库,则logout()函数将返回1;如果发生错误,则将返回0。

文件

/var/run/utmp
用户计费数据库,通过_PATH_UTMP配置
/var/log/wtmp
用户计费日志文件,通过_PATH_WTMP配置

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
login(),
logout()
Thread safetyMT-Unsafe race:utent
sig:ALRM timer

在上表中,race:utent中的utent表示如果在程序的不同线程中并行使用setutent(3),getutent(3)或endutent(3)中的任何功能,则可能发生数据争用。 login()和logout()调用这些函数,因此我们使用race:utent来提醒用户。

遵循规范

不在POSIX.1中。存在于BSD上。

备注

注意,结构utmp的成员ut_user在BSD中称为ut_name。因此,ut_name被定义为ut_user的别名。

另外参见

getutent(3),utmp(5)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/