52 lines
1.4 KiB
C
52 lines
1.4 KiB
C
|
#ifndef COSMOPOLITAN_LIBC_PASSWD_H_
|
||
|
#define COSMOPOLITAN_LIBC_PASSWD_H_
|
||
|
#include "libc/calls/weirdtypes.h"
|
||
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||
|
COSMOPOLITAN_C_START_
|
||
|
|
||
|
struct FILE;
|
||
|
|
||
|
struct passwd {
|
||
|
char *pw_name;
|
||
|
char *pw_passwd;
|
||
|
uint32_t pw_uid;
|
||
|
uint32_t pw_gid;
|
||
|
char *pw_gecos;
|
||
|
char *pw_dir;
|
||
|
char *pw_shell;
|
||
|
};
|
||
|
|
||
|
void setpwent(void);
|
||
|
void endpwent(void);
|
||
|
struct passwd *getpwent(void);
|
||
|
struct passwd *getpwuid(uint32_t);
|
||
|
struct passwd *getpwnam(const char *);
|
||
|
int getpwuid_r(uint32_t, struct passwd *, char *, size_t, struct passwd **);
|
||
|
int getpwnam_r(const char *, struct passwd *, char *, size_t, struct passwd **);
|
||
|
struct passwd *fgetpwent(struct FILE *);
|
||
|
int putpwent(const struct passwd *, struct FILE *);
|
||
|
|
||
|
struct group {
|
||
|
char *gr_name;
|
||
|
char *gr_passwd;
|
||
|
int32_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);
|
||
|
struct group *fgetgrent(struct FILE *);
|
||
|
int putgrent(const struct group *, struct FILE *);
|
||
|
int getgrouplist(const char *, gid_t, gid_t *, int *);
|
||
|
int setgroups(size_t, const int32_t *);
|
||
|
int initgroups(const char *, int32_t);
|
||
|
|
||
|
COSMOPOLITAN_C_END_
|
||
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||
|
#endif /* COSMOPOLITAN_LIBC_PASSWD_H_ */
|