今天是学Linux系统编程的第一天,然而明天六级考试我却在这里写代码。。。。不管怎么样先记录下这次实验再说。
这一次的内容是手工实现who命令。who命令在Linux系统内用来查看各个用户的登入情况,可以显示在哪个终端登陆以及登陆时间等信息。自己实现的话自然是需要和系统互动啦,所以我们需要去找出来用什么头文件可以让我们和系统交互并且获取用户的登陆信息。代码先放在下面。
#include <stdio.h> //standard input and output stream
#include <stdlib.h> //function exit
#include <utmp.h> //user login records relating
#include <fcntl.h> //file controal relating, open function
#include <unistd.h> //function read and close
#include <time.h>
#define SHOWHOST
void showtime(long timeval);
void show_info(struct utmp *);
int main(){
struct utmp utbuf;
int utmpfd;
if((utmpfd = open(UTMP_FILE, O_RDONLY))==-1){
printf("error\n");
perror(UTMP_FILE);
exit(1);
}
while(read(utmpfd, &utbuf, sizeof