Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Linux C编程的小例子——实现who命令(第二版)

Linux C编程的小例子——实现who命令(第二版)/*
 * who1.c
 *
 *  Created on: Dec 30, 2013
 *      Author: Fedora
 */#include <stdio.h>
#include <utmp.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#define SHOWHOSTvoid showtime(long timeval){
 char* cp;
 cp = ctime(&timeval); printf("%12.12s",cp+4);
}void show_info(struct utmp* utbufp){
 if(utbufp->ut_type != USER_PROCESS){
  return ;
 } printf("%-8.8s",utbufp->ut_name);
 printf(" ");
 printf("%-8.8s",utbufp->ut_line);
    printf(" ");
    showtime(utbufp->ut_time);
    printf(" ");#ifdef SHOWHOST
    if(utbufp->ut_host[0] != ""){
     printf("( %s )",utbufp->ut_host);
    }
#endif    printf(" ");
}
int main(){
 struct utmp current_record;
 int utmpfd;
 int reclen = sizeof(current_record); if((utmpfd = open(UTMP_FILE,O_RDONLY)) == -1){
  perror(UTMP_FILE);  return 1;
 } while( read(utmpfd,&current_record,reclen) == reclen ){
  show_info(&current_record);
 } close(utmpfd); return 0;
}相关阅读:Linux C编程的一个小例子——实现一个简单的who命令(第一版)  http://www.linuxidc.com/Linux/2014-01/94577.htm