• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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