zoukankan      html  css  js  c++  java
  • who命令

    who1.c

    #include <stdio.h>
    #include <utmp.h>
    #include <fcntl.h>
    #include <unistd.h>

    #define SHOWHOST /*include remote machine on output*/

    show_info(struct utmp *utbufp)
    {
    printf("% -8.8s", utbufp->ut_name);//the logname
    printf(" ");//a space
    printf("% -8.8s", utbufp->ut_line);//the tty
    printf(" ");//a space
    printf("% -10ld", utbufp->ut_time);//login time
    printf(" ");//a space
    #ifdef SHOWHOST
    printf("(%s)", utbufp->ut_host);//the host
    #endif
    printf(" ");//newline
    }
    int main()
    {
    struct utmp current_record; /*read info into here*/
    int utmpfd; /*read from this descriptor*/
    int reclen = sizeof(current_record);

    if ((utmpfd = open(UTMP_FILE, O_RDONLY)) == -1)
    {
    perror(UTMP_FILE);/*UTMP_FILE is utmp.h*/
    exit(1);
    }

    while(read(utmpfd, &current_record, reclen) == reclen)
    show_info(&current_record);
    close(utmpfd);
    return 0;/*went ok*/

    }

    who2.c

    #include <stdio.h>
    #include <utmp.h>
    #include <fcntl.h>
    #include <unistd.h>
    //who2 added
    #include <time.h>

    #define SHOWHOST /*include remote machine on output*/

    void show_info(struct utmp *utbufp);
    //who2 added
    void showtime(long);

    int main()
    {
    struct utmp current_record; /*read info into here*/
    int utmpfd; /*read from this descriptor*/
    int reclen = sizeof(current_record);

    if ((utmpfd = open(UTMP_FILE, O_RDONLY)) == -1)
    {
    perror(UTMP_FILE);/*UTMP_FILE is utmp.h*/
    exit(1);
    }

    while(read(utmpfd, &current_record, reclen) == reclen)
    show_info(&current_record);
    close(utmpfd);
    return 0;/*went ok*/

    }

    show_info(struct utmp *utbufp)
    {
    //who2 added
    if (utbufp->ut_type != USER_PROCESS)
    {
    return;
    }
    //who2 end
    printf("% -8.8s", utbufp->ut_name);//the logname
    printf(" ");//a space
    printf("% -8.8s", utbufp->ut_line);//the tty
    printf(" ");//a space
    //printf("% -10ld", utbufp->ut_time);//login time
    //printf(" ");//a space
    showtime(utbufp->ut_time);
    #ifdef SHOWHOST
    printf("(%s)", utbufp->ut_host);//the host
    #endif
    printf(" ");//newline
    }

    //who2 added
    void showtime(long timeval)
    {
    char *cp;//to hold address of time
    cp = ctime(&timeval);
    printf("%12.12s", cp+4);//pick 12 chars from pos 4
    }
    //who2 end

  • 相关阅读:
    去掉链接A标签周围的虚线框(IE、Firefox)<转>
    解决ckeditor 错误 和一些WEB开发的错误
    asp.net程序编译调试时偶尔出现访问被拒绝的错误的解决方法
    手工创建全新的DataSet
    玩3c `
    C#写个很不错的资源管理器
    asp.net调用JavaScript自定义方法
    JavaScript压缩格式化和加密
    ASP.NET格式化时间
    Response.ContentType 详细列表
  • 原文地址:https://www.cnblogs.com/wolflion/p/3208527.html
Copyright © 2011-2022 走看看