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 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 39 int getgrouplist(const char *, gid_t, gid_t *, int *); 40 int setgroups(size_t, const gid_t *); 41 int initgroups(const char *, gid_t); 42 #endif 43 44 #ifdef __cplusplus 45 } 46 #endif 47 48 #endif 49