(linenum→info "unix/slp.c:2238")

glibc/2.7/pwd/pwd.h

    1: /* Copyright (C) 1991,1992,1995-2001,2003,2004 Free Software Foundation, Inc.
    2:    This file is part of the GNU C Library.
    3: 
    4:    The GNU C Library is free software; you can redistribute it and/or
    5:    modify it under the terms of the GNU Lesser General Public
    6:    License as published by the Free Software Foundation; either
    7:    version 2.1 of the License, or (at your option) any later version.
    8: 
    9:    The GNU C Library is distributed in the hope that it will be useful,
   10:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   11:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   12:    Lesser General Public License for more details.
   13: 
   14:    You should have received a copy of the GNU Lesser General Public
   15:    License along with the GNU C Library; if not, write to the Free
   16:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   17:    02111-1307 USA.  */
   18: 
   19: /*
   20:  *      POSIX Standard: 9.2.2 User Database Access   <pwd.h>
   21:  */
   22: 
   23: #ifndef _PWD_H
   24: #define _PWD_H  1
   25: 
   26: #include <features.h>
   27: 
   28: __BEGIN_DECLS
   29: 
   30: #include <bits/types.h>
   31: 
   32: #define __need_size_t
   33: #include <stddef.h>
   34: 
   35: #if defined __USE_XOPEN || defined __USE_XOPEN2K
   36: /* The Single Unix specification says that some more types are
   37:    available here.  */
   38: # ifndef __gid_t_defined
   39: typedef __gid_t gid_t;
   40: #  define __gid_t_defined
   41: # endif
   42: 
   43: # ifndef __uid_t_defined
   44: typedef __uid_t uid_t;
   45: #  define __uid_t_defined
   46: # endif
   47: #endif
   48: 
   49: /* The passwd structure.  */
   50: struct passwd
   51: {
   52:   char *pw_name;                /* Username.  */
   53:   char *pw_passwd;              /* Password.  */
   54:   __uid_t pw_uid;               /* User ID.  */
   55:   __gid_t pw_gid;               /* Group ID.  */
   56:   char *pw_gecos;               /* Real name.  */
   57:   char *pw_dir;                 /* Home directory.  */
   58:   char *pw_shell;               /* Shell program.  */
   59: };
   60: 
   61: 
   62: #if defined __USE_SVID || defined __USE_GNU
   63: # define __need_FILE
   64: # include <stdio.h>
   65: #endif
   66: 
   67: 
   68: #if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN_EXTENDED
   69: /* Rewind the password-file stream.
   70: 
   71:    This function is a possible cancellation point and therefore not
   72:    marked with __THROW.  */
   73: extern void setpwent (void);
   74: 
   75: /* Close the password-file stream.
   76: 
   77:    This function is a possible cancellation point and therefore not
   78:    marked with __THROW.  */
   79: extern void endpwent (void);
   80: 
   81: /* Read an entry from the password-file stream, opening it if necessary.
   82: 
   83:    This function is a possible cancellation point and therefore not
   84:    marked with __THROW.  */
   85: extern struct passwd *getpwent (void);
   86: #endif
   87: 
   88: #ifdef  __USE_SVID
   89: /* Read an entry from STREAM.
   90: 
   91:    This function is not part of POSIX and therefore no official
   92:    cancellation point.  But due to similarity with an POSIX interface
   93:    or due to the implementation it is a cancellation point and
   94:    therefore not marked with __THROW.  */
   95: extern struct passwd *fgetpwent (FILE *__stream);
   96: 
   97: /* Write the given entry onto the given stream.
   98: 
   99:    This function is not part of POSIX and therefore no official
  100:    cancellation point.  But due to similarity with an POSIX interface
  101:    or due to the implementation it is a cancellation point and
  102:    therefore not marked with __THROW.  */
  103: extern int putpwent (__const struct passwd *__restrict __p,
  104:                      FILE *__restrict __f);
  105: #endif
  106: 
  107: /* Search for an entry with a matching user ID.
  108: 
  109:    This function is a possible cancellation point and therefore not
  110:    marked with __THROW.  */
  111: extern struct passwd *getpwuid (__uid_t __uid);
  112: 
  113: /* Search for an entry with a matching username.
  114: 
  115:    This function is a possible cancellation point and therefore not
  116:    marked with __THROW.  */
  117: extern struct passwd *getpwnam (__const char *__name);
  118: 
  119: #if defined __USE_POSIX || defined __USE_MISC
  120: 
  121: # ifdef __USE_MISC
  122: /* Reasonable value for the buffer sized used in the reentrant
  123:    functions below.  But better use `sysconf'.  */
  124: #  define NSS_BUFLEN_PASSWD     1024
  125: # endif
  126: 
  127: /* Reentrant versions of some of the functions above.
  128: 
  129:    PLEASE NOTE: the `getpwent_r' function is not (yet) standardized.
  130:    The interface may change in later versions of this library.  But
  131:    the interface is designed following the principals used for the
  132:    other reentrant functions so the chances are good this is what the
  133:    POSIX people would choose.  */
  134: 
  135: # if defined __USE_SVID || defined __USE_MISC
  136: /* This function is not part of POSIX and therefore no official
  137:    cancellation point.  But due to similarity with an POSIX interface
  138:    or due to the implementation it is a cancellation point and
  139:    therefore not marked with __THROW.  */
  140: extern int getpwent_r (struct passwd *__restrict __resultbuf,
  141:                        char *__restrict __buffer, size_t __buflen,
  142:                        struct passwd **__restrict __result);
  143: # endif
  144: 
  145: extern int getpwuid_r (__uid_t __uid,
  146:                        struct passwd *__restrict __resultbuf,
  147:                        char *__restrict __buffer, size_t __buflen,
  148:                        struct passwd **__restrict __result);
  149: 
  150: extern int getpwnam_r (__const char *__restrict __name,
  151:                        struct passwd *__restrict __resultbuf,
  152:                        char *__restrict __buffer, size_t __buflen,
  153:                        struct passwd **__restrict __result);
  154: 
  155: 
  156: # ifdef __USE_SVID
  157: /* Read an entry from STREAM.  This function is not standardized and
  158:    probably never will.
  159: 
  160:    This function is not part of POSIX and therefore no official
  161:    cancellation point.  But due to similarity with an POSIX interface
  162:    or due to the implementation it is a cancellation point and
  163:    therefore not marked with __THROW.  */
  164: extern int fgetpwent_r (FILE *__restrict __stream,
  165:                         struct passwd *__restrict __resultbuf,
  166:                         char *__restrict __buffer, size_t __buflen,
  167:                         struct passwd **__restrict __result);
  168: # endif
  169: 
  170: #endif  /* POSIX or reentrant */
  171: 
  172: #ifdef __USE_GNU
  173: /* Re-construct the password-file line for the given uid
  174:    in the given buffer.  This knows the format that the caller
  175:    will expect, but this need not be the format of the password file.
  176: 
  177:    This function is not part of POSIX and therefore no official
  178:    cancellation point.  But due to similarity with an POSIX interface
  179:    or due to the implementation it is a cancellation point and
  180:    therefore not marked with __THROW.  */
  181: extern int getpw (__uid_t __uid, char *__buffer);
  182: #endif
  183: 
  184: __END_DECLS
  185: 
  186: #endif /* pwd.h  */
Syntax (Markdown)