Question: Contents of Who1.c #include #include #include #include #include #define SHOWHOST /* include remote machine on output */ int main() { struct utmp current_record; /* read

Contents of Who1.c
#include
#define SHOWHOST /* include remote machine on output */
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 in utmp.h */ exit(1); }
while (read(utmpfd, ¤t_record, reclen) == reclen) { show_info(¤t_record); } close(utmpfd); return 0; /* went ok */ }
/*! * show info() * displays contents of the utmp struct in human readable form * *note* these sizes should not be hardwired */ 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 */ }
5. The whol program lists every entry in the utmp file. That was not our intention but it provided a handy tool for examining the contents of utmp. Make uho1 more useful by adding code to it that prints out all the other fields in the struct. The ut type field is particularly useful
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
