1#pragma once 2 3#ifdef __cplusplus 4extern "C" { 5#endif 6 7#include <features.h> 8 9#define __NEED_size_t 10#define __NEED_uid_t 11#define __NEED_gid_t 12 13#ifdef _GNU_SOURCE 14#define __NEED_FILE 15#endif 16 17#include <bits/alltypes.h> 18 19struct passwd { 20 char* pw_name; 21 char* pw_passwd; 22 uid_t pw_uid; 23 gid_t pw_gid; 24 char* pw_gecos; 25 char* pw_dir; 26 char* pw_shell; 27}; 28 29void setpwent(void); 30void endpwent(void); 31struct passwd* getpwent(void); 32 33struct passwd* getpwuid(uid_t); 34struct passwd* getpwnam(const char*); 35int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**); 36int getpwnam_r(const char*, struct passwd*, char*, size_t, struct passwd**); 37 38#ifdef _GNU_SOURCE 39struct passwd* fgetpwent(FILE*); 40int putpwent(const struct passwd*, FILE*); 41#endif 42 43#ifdef __cplusplus 44} 45#endif 46