mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 07:17:35 +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
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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<Optional<struct passwd>> getpwnam(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<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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue