LCOV - code coverage report
Current view: top level - usr/include - pwd.h (source / functions) Hit Total Coverage
Test: coverage report for v4-17-test 1498b464 Lines: 16 16 100.0 %
Date: 2024-06-13 04:01:37 Functions: 8 8 100.0 %

          Line data    Source code
       1             : /* Copyright (C) 1991-2018 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, see
      16             :    <http://www.gnu.org/licenses/>.  */
      17             : 
      18             : /*
      19             :  *      POSIX Standard: 9.2.2 User Database Access      <pwd.h>
      20             :  */
      21             : 
      22             : #ifndef _PWD_H
      23             : #define _PWD_H  1
      24             : 
      25             : #include <features.h>
      26             : 
      27             : __BEGIN_DECLS
      28             : 
      29             : #include <bits/types.h>
      30             : 
      31             : #define __need_size_t
      32             : #include <stddef.h>
      33             : 
      34             : #if defined __USE_XOPEN || defined __USE_XOPEN2K
      35             : /* The Single Unix specification says that some more types are
      36             :    available here.  */
      37             : # ifndef __gid_t_defined
      38             : typedef __gid_t gid_t;
      39             : #  define __gid_t_defined
      40             : # endif
      41             : 
      42             : # ifndef __uid_t_defined
      43             : typedef __uid_t uid_t;
      44             : #  define __uid_t_defined
      45             : # endif
      46             : #endif
      47             : 
      48             : /* The passwd structure.  */
      49             : struct passwd
      50             : {
      51             :   char *pw_name;                /* Username.  */
      52             :   char *pw_passwd;              /* Password.  */
      53             :   __uid_t pw_uid;               /* User ID.  */
      54             :   __gid_t pw_gid;               /* Group ID.  */
      55             :   char *pw_gecos;               /* Real name.  */
      56             :   char *pw_dir;                 /* Home directory.  */
      57             :   char *pw_shell;               /* Shell program.  */
      58             : };
      59             : 
      60             : 
      61             : #ifdef __USE_MISC
      62             : # include <bits/types/FILE.h>
      63             : #endif
      64             : 
      65             : 
      66             : #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
      67             : /* Rewind the password-file stream.
      68             : 
      69             :    This function is a possible cancellation point and therefore not
      70             :    marked with __THROW.  */
      71           5 : extern void setpwent (void);
      72           5 : 
      73             : /* Close the password-file stream.
      74             : 
      75             :    This function is a possible cancellation point and therefore not
      76             :    marked with __THROW.  */
      77         213 : extern void endpwent (void);
      78        3673 : 
      79             : /* Read an entry from the password-file stream, opening it if necessary.
      80             : 
      81             :    This function is a possible cancellation point and therefore not
      82             :    marked with __THROW.  */
      83          96 : extern struct passwd *getpwent (void);
      84          96 : #endif
      85             : 
      86             : #ifdef  __USE_MISC
      87             : /* Read an entry from STREAM.
      88             : 
      89             :    This function is not part of POSIX and therefore no official
      90             :    cancellation point.  But due to similarity with an POSIX interface
      91             :    or due to the implementation it is a cancellation point and
      92             :    therefore not marked with __THROW.  */
      93             : extern struct passwd *fgetpwent (FILE *__stream) __nonnull ((1));
      94             : 
      95             : /* Write the given entry onto the given stream.
      96             : 
      97             :    This function is not part of POSIX and therefore no official
      98             :    cancellation point.  But due to similarity with an POSIX interface
      99             :    or due to the implementation it is a cancellation point and
     100             :    therefore not marked with __THROW.  */
     101             : extern int putpwent (const struct passwd *__restrict __p,
     102             :                      FILE *__restrict __f);
     103             : #endif
     104             : 
     105             : /* Search for an entry with a matching user ID.
     106             : 
     107             :    This function is a possible cancellation point and therefore not
     108             :    marked with __THROW.  */
     109       20317 : extern struct passwd *getpwuid (__uid_t __uid);
     110        8261 : 
     111             : /* Search for an entry with a matching username.
     112             : 
     113             :    This function is a possible cancellation point and therefore not
     114             :    marked with __THROW.  */
     115       10064 : extern struct passwd *getpwnam (const char *__name) __nonnull ((1));
     116        3885 : 
     117             : #ifdef __USE_POSIX
     118             : 
     119             : # ifdef __USE_MISC
     120             : /* Reasonable value for the buffer sized used in the reentrant
     121             :    functions below.  But better use `sysconf'.  */
     122             : #  define NSS_BUFLEN_PASSWD     1024
     123             : # endif
     124             : 
     125             : /* Reentrant versions of some of the functions above.
     126             : 
     127             :    PLEASE NOTE: the `getpwent_r' function is not (yet) standardized.
     128             :    The interface may change in later versions of this library.  But
     129             :    the interface is designed following the principals used for the
     130             :    other reentrant functions so the chances are good this is what the
     131             :    POSIX people would choose.  */
     132             : 
     133             : # ifdef __USE_MISC
     134             : /* This function is not part of POSIX and therefore no official
     135             :    cancellation point.  But due to similarity with an POSIX interface
     136             :    or due to the implementation it is a cancellation point and
     137             :    therefore not marked with __THROW.  */
     138          64 : extern int getpwent_r (struct passwd *__restrict __resultbuf,
     139          64 :                        char *__restrict __buffer, size_t __buflen,
     140             :                        struct passwd **__restrict __result)
     141             :                        __nonnull ((1, 2, 4));
     142             : # endif
     143             : 
     144          62 : extern int getpwuid_r (__uid_t __uid,
     145             :                        struct passwd *__restrict __resultbuf,
     146          79 :                        char *__restrict __buffer, size_t __buflen,
     147             :                        struct passwd **__restrict __result)
     148             :                        __nonnull ((2, 3, 5));
     149             : 
     150          62 : extern int getpwnam_r (const char *__restrict __name,
     151             :                        struct passwd *__restrict __resultbuf,
     152             :                        char *__restrict __buffer, size_t __buflen,
     153          98 :                        struct passwd **__restrict __result)
     154             :                        __nonnull ((1, 2, 3, 5));
     155             : 
     156             : 
     157             : # ifdef __USE_MISC
     158             : /* Read an entry from STREAM.  This function is not standardized and
     159             :    probably never will.
     160             : 
     161             :    This function is not part of POSIX and therefore no official
     162             :    cancellation point.  But due to similarity with an POSIX interface
     163             :    or due to the implementation it is a cancellation point and
     164             :    therefore not marked with __THROW.  */
     165             : extern int fgetpwent_r (FILE *__restrict __stream,
     166             :                         struct passwd *__restrict __resultbuf,
     167             :                         char *__restrict __buffer, size_t __buflen,
     168             :                         struct passwd **__restrict __result)
     169             :                         __nonnull ((1, 2, 3, 5));
     170             : # endif
     171             : 
     172             : #endif  /* POSIX or reentrant */
     173             : 
     174             : #ifdef __USE_GNU
     175             : /* Re-construct the password-file line for the given uid
     176             :    in the given buffer.  This knows the format that the caller
     177             :    will expect, but this need not be the format of the password file.
     178             : 
     179             :    This function is not part of POSIX and therefore no official
     180             :    cancellation point.  But due to similarity with an POSIX interface
     181             :    or due to the implementation it is a cancellation point and
     182             :    therefore not marked with __THROW.  */
     183             : extern int getpw (__uid_t __uid, char *__buffer);
     184             : #endif
     185             : 
     186             : __END_DECLS
     187             : 
     188             : #endif /* pwd.h  */

Generated by: LCOV version 1.13