#pragma once #ifdef __cplusplus extern "C" { #endif #include <features.h> #define __NEED_size_t #define __NEED_uid_t #define __NEED_gid_t #ifdef _GNU_SOURCE #define __NEED_FILE #endif #include <bits/alltypes.h> struct passwd { char* pw_name; char* pw_passwd; uid_t pw_uid; gid_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(uid_t); struct passwd* getpwnam(const char*); int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**); int getpwnam_r(const char*, struct passwd*, char*, size_t, struct passwd**); #ifdef _GNU_SOURCE struct passwd* fgetpwent(FILE*); int putpwent(const struct passwd*, FILE*); #endif #ifdef __cplusplus } #endif