blob: 030d7f8203c0fedf9f6c645258d8a20cd163ac62 [file] [log] [blame]
Rich Felker0b44a032011-02-12 00:22:29 -05001#ifndef _GRP_H
2#define _GRP_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
Rich Felkerc1a96582012-09-07 23:13:55 -04008#include <features.h>
9
Rich Felker0b44a032011-02-12 00:22:29 -050010#define __NEED_size_t
11#define __NEED_gid_t
12
13#include <bits/alltypes.h>
14
15struct group
16{
17 char *gr_name;
18 char *gr_passwd;
19 gid_t gr_gid;
20 char **gr_mem;
21};
22
23struct group *getgrgid(gid_t);
24struct group *getgrnam(const char *);
25
26int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);
27int getgrnam_r(const char *, struct group *, char *, size_t, struct group **);
28
29struct group *getgrent(void);
30void endgrent(void);
31void setgrent(void);
32
Rich Felker419ae6d2012-05-22 21:52:08 -040033#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
Rich Felker3f44f292011-04-13 09:03:22 -040034int getgrouplist(const char *, gid_t, gid_t *, int *);
35int setgroups(size_t, const gid_t *);
36int initgroups(const char *, gid_t);
37#endif
38
Rich Felker0b44a032011-02-12 00:22:29 -050039#ifdef __cplusplus
40}
41#endif
42
43#endif