如何读取wtmp文件?

时间:2012-04-25 21:35:07

标签: c

我正在处理一项任务,该任务涉及使用各种数据结构来存储和排序数据。数据结构部分对我来说相当直接,但是,我在第一步,读取/解析wtmp文件时被挂起。我以前解析过几个文件,但从来没有解析过二进制文件。解析这样一个文件的诀窍是什么?提前谢谢。

2 个答案:

答案 0 :(得分:4)

尝试使用utmp.h

答案 1 :(得分:2)

以下是如何解析它的示例,您需要将文件的字节读取为utmp结构。您应该查看手册页以获取所有详细信息,这与使用标准C库读取文件不同。

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

int main()
{
      int fd;
      struct utmp cr;
      int reclen = sizeof(struct utmp);

      fd = open(WTMP_FILE, O_RDONLY);
      if (fd == -1){
        perror("oops");
        exit(1);
      }
      while (read(fd, &cr, reclen) == reclen)
        printf("-- %s\n", cr.ut_user);

      close (fd);
      return 0;
}