mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:57:45 +00:00
LibCore: Add syscall wrappers for getpwuid() and getgrgid()
This commit is contained in:
parent
1e4117f1e1
commit
7008f74214
2 changed files with 22 additions and 0 deletions
|
@ -403,6 +403,26 @@ ErrorOr<void> chown(StringView pathname, uid_t uid, gid_t gid)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ErrorOr<Optional<struct passwd>> getpwuid(uid_t uid)
|
||||||
|
{
|
||||||
|
errno = 0;
|
||||||
|
if (auto* pwd = ::getpwuid(uid))
|
||||||
|
return *pwd;
|
||||||
|
if (errno)
|
||||||
|
return Error::from_syscall("getpwuid"sv, -errno);
|
||||||
|
return Optional<struct passwd> {};
|
||||||
|
}
|
||||||
|
|
||||||
|
ErrorOr<Optional<struct group>> getgrgid(gid_t gid)
|
||||||
|
{
|
||||||
|
errno = 0;
|
||||||
|
if (auto* grp = ::getgrgid(gid))
|
||||||
|
return *grp;
|
||||||
|
if (errno)
|
||||||
|
return Error::from_syscall("getgrgid"sv, -errno);
|
||||||
|
return Optional<struct group> {};
|
||||||
|
}
|
||||||
|
|
||||||
ErrorOr<Optional<struct passwd>> getpwnam(StringView name)
|
ErrorOr<Optional<struct passwd>> getpwnam(StringView name)
|
||||||
{
|
{
|
||||||
errno = 0;
|
errno = 0;
|
||||||
|
|
|
@ -70,6 +70,8 @@ ErrorOr<void> lchown(StringView pathname, uid_t uid, gid_t gid);
|
||||||
ErrorOr<void> chown(StringView pathname, uid_t uid, gid_t gid);
|
ErrorOr<void> chown(StringView pathname, uid_t uid, gid_t gid);
|
||||||
ErrorOr<Optional<struct passwd>> getpwnam(StringView name);
|
ErrorOr<Optional<struct passwd>> getpwnam(StringView name);
|
||||||
ErrorOr<Optional<struct group>> getgrnam(StringView name);
|
ErrorOr<Optional<struct group>> getgrnam(StringView name);
|
||||||
|
ErrorOr<Optional<struct passwd>> getpwuid(uid_t);
|
||||||
|
ErrorOr<Optional<struct group>> getgrgid(gid_t);
|
||||||
ErrorOr<void> clock_settime(clockid_t clock_id, struct timespec* ts);
|
ErrorOr<void> clock_settime(clockid_t clock_id, struct timespec* ts);
|
||||||
ErrorOr<pid_t> posix_spawnp(StringView const path, posix_spawn_file_actions_t* const file_actions, posix_spawnattr_t* const attr, char* const arguments[], char* const envp[]);
|
ErrorOr<pid_t> posix_spawnp(StringView const path, posix_spawn_file_actions_t* const file_actions, posix_spawnattr_t* const attr, char* const arguments[], char* const envp[]);
|
||||||
ErrorOr<pid_t> waitpid(pid_t waitee, int* wstatus, int options);
|
ErrorOr<pid_t> waitpid(pid_t waitee, int* wstatus, int options);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue