zoukankan      html  css  js  c++  java
  • 登录记账

    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字符串

    这里写图片描述

  • 相关阅读:
    Quartz.Net定时器
    Lucene.Net 实现搜索功能
    哈希表 STL map
    买卖股票的最佳时机I II III IV
    [离散化]人潮最多的時段( Interval Partitioning Problem )
    动态规划[入门]3-更难的矩阵取数问题
    动态规划[入门3]-多重背包问题
    动态规划[入门]2-循环数组最大子段和
    catalan卡塔兰数
    逆波兰表达式
  • 原文地址:https://www.cnblogs.com/biaopei/p/7730599.html
Copyright © 2011-2022 走看看