glibc (2.38)

(root)/
include/
gshadow.h
       1  /* Copyright (C) 2009-2023 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     <https://www.gnu.org/licenses/>.  */
      17  
      18  /* Declaration of types and functions for shadow group suite.  */
      19  
      20  #ifndef _GSHADOW_H
      21  #define _GSHADOW_H	1
      22  
      23  #include <features.h>
      24  #include <paths.h>
      25  #include <bits/types/FILE.h>
      26  
      27  #define __need_size_t
      28  #include <stddef.h>
      29  
      30  /* Path to the user database files.  */
      31  #define	GSHADOW _PATH_GSHADOW
      32  
      33  
      34  __BEGIN_DECLS
      35  
      36  /* Structure of the group file.  */
      37  struct sgrp
      38    {
      39      char *sg_namp;		/* Group name.  */
      40      char *sg_passwd;		/* Encrypted password.  */
      41      char **sg_adm;		/* Group administrator list.  */
      42      char **sg_mem;		/* Group member list.  */
      43    };
      44  
      45  
      46  /* Open database for reading.
      47  
      48     This function is not part of POSIX and therefore no official
      49     cancellation point.  But due to similarity with an POSIX interface
      50     or due to the implementation it is a cancellation point and
      51     therefore not marked with __THROW.  */
      52  extern void setsgent (void);
      53  
      54  /* Close database.
      55  
      56     This function is not part of POSIX and therefore no official
      57     cancellation point.  But due to similarity with an POSIX interface
      58     or due to the implementation it is a cancellation point and
      59     therefore not marked with __THROW.  */
      60  extern void endsgent (void);
      61  
      62  /* Get next entry from database, perhaps after opening the file.
      63  
      64     This function is not part of POSIX and therefore no official
      65     cancellation point.  But due to similarity with an POSIX interface
      66     or due to the implementation it is a cancellation point and
      67     therefore not marked with __THROW.  */
      68  extern struct sgrp *getsgent (void);
      69  
      70  /* Get shadow entry matching NAME.
      71  
      72     This function is not part of POSIX and therefore no official
      73     cancellation point.  But due to similarity with an POSIX interface
      74     or due to the implementation it is a cancellation point and
      75     therefore not marked with __THROW.  */
      76  extern struct sgrp *getsgnam (const char *__name);
      77  
      78  /* Read shadow entry from STRING.
      79  
      80     This function is not part of POSIX and therefore no official
      81     cancellation point.  But due to similarity with an POSIX interface
      82     or due to the implementation it is a cancellation point and
      83     therefore not marked with __THROW.  */
      84  extern struct sgrp *sgetsgent (const char *__string);
      85  
      86  /* Read next shadow entry from STREAM.
      87  
      88     This function is not part of POSIX and therefore no official
      89     cancellation point.  But due to similarity with an POSIX interface
      90     or due to the implementation it is a cancellation point and
      91     therefore not marked with __THROW.  */
      92  extern struct sgrp *fgetsgent (FILE *__stream);
      93  
      94  /* Write line containing shadow password entry to stream.
      95  
      96     This function is not part of POSIX and therefore no official
      97     cancellation point.  But due to similarity with an POSIX interface
      98     or due to the implementation it is a cancellation point and
      99     therefore not marked with __THROW.  */
     100  extern int putsgent (const struct sgrp *__g, FILE *__stream);
     101  
     102  
     103  #ifdef __USE_MISC
     104  /* Reentrant versions of some of the functions above.
     105  
     106     These functions are not part of POSIX and therefore no official
     107     cancellation point.  But due to similarity with an POSIX interface
     108     or due to the implementation they are cancellation points and
     109     therefore not marked with __THROW.  */
     110  extern int getsgent_r (struct sgrp *__result_buf, char *__buffer,
     111  		       size_t __buflen, struct sgrp **__result)
     112  	__attr_access ((__write_only__, 2, 3));
     113  
     114  extern int getsgnam_r (const char *__name, struct sgrp *__result_buf,
     115  		       char *__buffer, size_t __buflen,
     116  		       struct sgrp **__result)
     117  	__attr_access ((__write_only__, 3, 4));
     118  
     119  extern int sgetsgent_r (const char *__string, struct sgrp *__result_buf,
     120  			char *__buffer, size_t __buflen,
     121  			struct sgrp **__result)
     122  	__attr_access ((__write_only__, 3, 4));
     123  
     124  extern int fgetsgent_r (FILE *__stream, struct sgrp *__result_buf,
     125  			char *__buffer, size_t __buflen,
     126  			struct sgrp **__result)
     127  	__attr_access ((__write_only__, 3, 4));
     128  #endif	/* misc */
     129  
     130  __END_DECLS
     131  
     132  #endif /* gshadow.h */