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 #include #include #include #include #define SHOWHOST /*

Contents of Who1.c

#include #include #include #include #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, &current_record, reclen) == reclen) { show_info(&current_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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!