zoukankan      html  css  js  c++  java
  • /var/run/utmp文件操作函数

    相关函数:getutent, getutid, getutline, setutent, endutent, pututline, utmpname

    utmp 结构定义如下:
    struct utmp
    {
        short int ut_type; //登录类型
        pid_t ut_pid; //login 进程的pid
        char ut_line[UT_LINESIZE]; //登录装置名, 省略了"/dev/"
        char ut_id[4]; //Inittab ID
        char ut_user[UT_NAMESIZE]; //登录账号
        char ut_host[UT_HOSTSIZE]; //登录账号的远程主机名称
        struxt exit_status ut_exit; //当类型为DEAD_PROCESS 时进程的结束状态
        long int ut_session; //Sessioc ID
        struct timeval ut_tv; //时间记录
        int32_t ut_addr_v6[4]; //远程主机的网络地址
        char __unused[20]; //保留未使用
    };

    ut_type 有以下几种类型:
    EMPTY:此为空的记录.
    RUN_LVL:记录系统run-level 的改变
    BOOT_TIME:记录系统开机时间
    NEW_TIME:记录系统时间改变后的时间
    OLD_TINE:记录当改变系统时间时的时间.
    INIT_PROCESS:记录一个由init 衍生出来的进程.
    LOGIN_PROCESS:记录 login 进程.
    USER_PROCESS:记录一般进程.
    DEAD_PROCESS:记录一结束的进程.
    ACCOUNTING:目前尚未使用.

    exit_status 结构定义:
    struct exit_status
    {
        short int e_termination; //进程结束状态
        short int e_exit; //进程退出状态
    };

    timeval 的结构定义请参考gettimeofday()。

    相关常数定义如下:
    UT_LINESIZE 32
    UT_NAMESIZE 32
    UT_HOSTSIZE 256

    范例
    #include <utmp.h>
    main()
    {
        struct utmp *u;
        while((u = getutent()))
        {
            if(u->ut_type == USER_PROCESS)
                printf("%d %s %s %s ", u->ut_type, u->ut_user, u->ut_line, u->ut_host);
        }
        endutent();
    }

  • 相关阅读:
    bzoj4513: [Sdoi2016]储能表
    bzoj4000: [TJOI2015]棋盘
    bzoj3067: Hyperdrome
    bzoj4943: [Noi2017]蚯蚓
    bzoj4044: [Cerc2014] Virus synthesis
    bzoj3676: [Apio2014]回文串
    bzoj4543: [POI2014]Hotel加强版
    bzoj1921: [Ctsc2010]珠宝商
    bzoj4754: [Jsoi2016]独特的树叶
    作图的配色
  • 原文地址:https://www.cnblogs.com/wangliangblog/p/8533788.html
Copyright © 2011-2022 走看看