grp.h raw

   1  #ifndef	_GRP_H
   2  #define	_GRP_H
   3  
   4  #ifdef __cplusplus
   5  extern "C" {
   6  #endif
   7  
   8  #include <features.h>
   9  
  10  #define __NEED_size_t
  11  #define __NEED_gid_t
  12  
  13  #ifdef _GNU_SOURCE
  14  #define __NEED_FILE
  15  #endif
  16  
  17  #include <bits/alltypes.h>
  18  
  19  struct group {
  20  	char *gr_name;
  21  	char *gr_passwd;
  22  	gid_t gr_gid;
  23  	char **gr_mem;
  24  };
  25  
  26  struct group  *getgrgid(gid_t);
  27  struct group  *getgrnam(const char *);
  28  
  29  int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);
  30  int getgrnam_r(const char *, struct group *, char *, size_t, struct group **);
  31  
  32  #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
  33  struct group  *getgrent(void);
  34  void           endgrent(void);
  35  void           setgrent(void);
  36  #endif
  37  
  38  #ifdef _GNU_SOURCE
  39  struct group  *fgetgrent(FILE *);
  40  int putgrent(const struct group *, FILE *);
  41  #endif
  42  
  43  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
  44  int getgrouplist(const char *, gid_t, gid_t *, int *);
  45  int setgroups(size_t, const gid_t *);
  46  int initgroups(const char *, gid_t);
  47  #endif
  48  
  49  #ifdef __cplusplus
  50  }
  51  #endif
  52  
  53  #endif
  54