• 登录记账


    utmp 文件维护着当前登录进系统的用户记录,每一个用户登录进系统是都会想utmp文件写入一条信息,这条信息包含一个记录着用户名的ut_user字段,当用户登出的时候该条记录会被删除(who之类的程序就是使用utmp文件中的信息来显示当前登录进系统的用户列表)
    wtmp文件包涵登录登出记录,功能类似utmp,只是当用户等处系统时还会向这个文件附加一条记录,该条记录与的呢公路信息相同,但是ut_user字段会被置零(last命令就是使用wtmp文件内容)

    #include<utmpx.h>
    //将utmp文件的当前位置设置到文件的起始位置,当utmp文件没有被打开时,setutxent()和getutx*()会打开这个文件
    void setutxent(void);
    
    //关闭utmp文件
    void endutxent(void);
    
    //getutxent(),getutxid()和getutxline()会从utmp文件中读取一个记录并返回一个只想utmpx结构的指针,搜索失败返回NULL
    struct utmpx *getutxent(void);
    struct utmpx *getutxid(const struct utmpx *ut); //根据ut参数中ut_type和ut_id字段的值在utmp文件中搜索一个记录
    struct utmpx *getutxline(const struct utmpx *ut);//根据ut参数ut_type字段和ut_line字段匹配
    
    //默认情况下,所有getutx*()函数都使用标准的utmp文件,如果需要使用另一个文件,例如wtmp文件,需要调用utmpxname()并制定目标路径名
    int utmpxname(const char *file);//仅仅复制路径名,不会打开文件,但会关闭之前有其他调用打开的所有文件
    
    #include<unistd.h>
    char *getlogin(void);   //获取登录名字,搜索utmp文件以找出ut_line值与终端名匹配的记录,如果找到了,返回记录中的ut_user字符串

    这里写图片描述

  • 相关阅读:
    http响应状态码大全
    Internet protocol security (ipsec) packet processing for multiple clients sharing a single network address
    linq.js的用法
    linq.js的用法
    程序员每天应该思考的5个问题,你有思考过吗?
    程序员每天应该思考的5个问题,你有思考过吗?
    程序员每天应该思考的5个问题,你有思考过吗?
    Win10 owerShell Get命令大全
    Win10 owerShell Get命令大全
    Win10 owerShell Get命令大全
  • 原文地址:https://www.cnblogs.com/biaopei/p/7730599.html
Copyright © 2020-2023  润新知