home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume4 / game_reg / logfile.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-11-30  |  1.7 KB  |  86 lines

  1. #ifndef lint
  2. static char *RCSid = "$Header: logfile.c,v 1.3 86/03/25 15:44:35 mcooper Exp $";
  3. #endif
  4.  
  5. /*
  6.  *------------------------------------------------------------------
  7.  *
  8.  * $Source: /usr/src/local/gr/RCS/logfile.c,v $
  9.  * $Revision: 1.3 $
  10.  * $Date: 86/03/25 15:44:35 $
  11.  * $State: Exp $
  12.  * $Author: mcooper $
  13.  * $Locker: mcooper $
  14.  *
  15.  *------------------------------------------------------------------
  16.  *
  17.  * Michael Cooper (mcooper@usc-oberon.arpa)
  18.  * University Computing Services,
  19.  * University of Southern California,
  20.  * Los Angeles, California,   90089-0251
  21.  * (213) 743-3469
  22.  *
  23.  *------------------------------------------------------------------
  24.  * $Log:    logfile.c,v $
  25.  * Revision 1.3  86/03/25  15:44:35  mcooper
  26.  * more of same.
  27.  * 
  28.  * Revision 1.2  86/03/25  15:35:43  mcooper
  29.  * New headers...
  30.  * 
  31.  *------------------------------------------------------------------
  32.  */
  33.  
  34. /*
  35.  * logfile() -- log who is playing.  If LOGFILE is defined (in gr.c)
  36.  *        then this function keeps track of users who play.
  37.  */
  38.  
  39.  
  40. #include <stdio.h>
  41. #include <pwd.h>
  42. #include "gr.h"
  43.  
  44. #ifdef LOGFILE
  45. struct passwd *pw;
  46. struct passwd *getpwuid();
  47.  
  48. logfile(msg)
  49. char *msg;
  50. {
  51.     char *fprintf();
  52.     char *strcmp();
  53.     char *getlogin();
  54.     char *time(), *ctime();
  55.     char buf[80];
  56.     char *str;
  57.     char *user;
  58.     double now;
  59.     int diff = 0;
  60.     FILE *fd, *fopen();
  61.  
  62.     if ((pw = getpwuid(getuid())) != NULL)
  63.         user = pw->pw_name;
  64.     else
  65.         user = "(unknown)";
  66.  
  67.     if((str = getlogin()) != NULL)
  68.         if(strcmp(str, user) != 0) {
  69.             diff = 1;
  70.             sprintf(buf, "(%s)", str);
  71.         }
  72.  
  73.     time(&now);
  74.  
  75.     if((fd = fopen(LOGFILE, "a")) != NULL){
  76.         fprintf(fd, "%-10s%-12s%-7s%10.24s  [ %s ]\n", 
  77.                 user, 
  78.                 diff ? buf : "", 
  79.                 rindex(ttyname(0), '/') + 1,
  80.                 ctime(&now), 
  81.                 msg);
  82.         fclose(fd);
  83.     }
  84. }
  85. #endif
  86.