home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3297 / username.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-05-07  |  593 b   |  51 lines

  1. /* History:
  2. 5/1/91 DJB baseline public domain
  3. */
  4.  
  5. /*
  6.  
  7. See groupname.c for documentation.
  8.  
  9. */
  10.  
  11. #include <pwd.h>
  12. #include "username.h"
  13. #include "numeric.h"
  14.  
  15. /*XXX: cache */
  16.  
  17. int uid2username(uid,unp)
  18. int uid;
  19. char **unp;
  20. {
  21.  struct passwd *pw;
  22.  static char un[20];
  23.  
  24.  if (pw = getpwuid(uid))
  25.   {
  26.    *unp = pw->pw_name;
  27.    return 0;
  28.   }
  29.  sprintf(un,"%d",uid);
  30.  *unp = un;
  31.  return 1;
  32. }
  33.  
  34. int username2uid(un,uid)
  35. char *un;
  36. int *uid;
  37. {
  38.  struct passwd *pw;
  39.  
  40.  if (numeric(un))
  41.   {
  42.    *uid = atoi(un);
  43.    return 1;
  44.   }
  45.  pw = getpwnam(un);
  46.  if (!pw)
  47.    return -1; /*XXX*/
  48.  *uid = pw->pw_uid;
  49.  return 0;
  50. }
  51.