home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / idutil / getlogin.c < prev    next >
C/C++ Source or Header  |  1992-06-12  |  1KB  |  68 lines

  1. /* 
  2. ** NAME : getlogin.c
  3. ** PURPOSE : Shell level access to getlogin(3)
  4. */
  5. #include <stdio.h>
  6. #include <errno.h>
  7. #include <gnu/fileutil.h>
  8.  
  9. static char *RCSid="$Header: getlogin.c,v 1.3 92/02/25 14:00:06 dtb Exp $";
  10.  
  11. int     fpr_usage();
  12.  
  13. static char     *trim_main_name;
  14. static short     main_verbose = 0;
  15.  
  16. int    main ( argc, argv, envp )
  17. int    argc;
  18. char    **argv;
  19. char    **envp;
  20. {
  21.     char    *optstring = "Iv" ;
  22.     int        optchar;
  23.     extern char    *optarg;
  24.     extern int    optind;
  25.     extern int    opterr;
  26.     char     *login_name;
  27.     int     rval = 0;                 /* Default return success */
  28.  
  29.     trim_main_name = basename(*argv);
  30.     main_verbose = 0;        /* verbose off */
  31.     opterr = 0;
  32.     while ((optchar = getopt(argc, argv, optstring)) != -1)
  33.         switch (optchar) {
  34.         case 'I':
  35.             fprintf (stderr, "%s %s\n", __FILE__, RCSid);
  36.             break;
  37.         case 'v':
  38.             main_verbose = 1;
  39.             break;
  40.         case '?':
  41.             fpr_usage (stderr);
  42.             exit (EINVAL);
  43.         }
  44.     if ((login_name = (char *)getlogin())==NULL) {
  45.         if (main_verbose) {
  46.             fprintf(stderr, "%s: getlogin() returned null\n",
  47.                 trim_main_name);
  48.             rval = 1;
  49.         }
  50.     } else {
  51.         if (main_verbose) 
  52.             printf("Your login according to /etc/utmp is ");
  53.         printf ("%s\n", login_name);
  54.     }
  55.     return (rval);
  56.  
  57. }
  58.  
  59.  
  60. int     fpr_usage (fp)
  61. FILE     *fp;
  62. {
  63.     int     nout = 0;
  64.     nout += fprintf (stderr, "Usage: %s [-v]\n", trim_main_name);
  65.     return (nout);
  66. }
  67.  
  68.