mirror of
https://github.com/fluencelabs/musl
synced 2025-05-29 07:31:53 +00:00
based on patch by Isaac Dunham, moved to its own file to avoid increasing bss on static linked programs not using this nonstandard function but using the standard getgrent function, and vice versa.
48 lines
858 B
C
48 lines
858 B
C
#ifndef _GRP_H
|
|
#define _GRP_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <features.h>
|
|
|
|
#define __NEED_size_t
|
|
#define __NEED_gid_t
|
|
|
|
#include <bits/alltypes.h>
|
|
|
|
struct group
|
|
{
|
|
char *gr_name;
|
|
char *gr_passwd;
|
|
gid_t gr_gid;
|
|
char **gr_mem;
|
|
};
|
|
|
|
struct group *getgrgid(gid_t);
|
|
struct group *getgrnam(const char *);
|
|
|
|
int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);
|
|
int getgrnam_r(const char *, struct group *, char *, size_t, struct group **);
|
|
|
|
struct group *getgrent(void);
|
|
void endgrent(void);
|
|
void setgrent(void);
|
|
|
|
#ifdef _GNU_SOURCE
|
|
struct group *fgetgrent(FILE *stream);
|
|
#endif
|
|
|
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
|
int getgrouplist(const char *, gid_t, gid_t *, int *);
|
|
int setgroups(size_t, const gid_t *);
|
|
int initgroups(const char *, gid_t);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|