mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 06:07:44 +00:00
LibCore: Add syscall wrapper for getgrnam()
This commit is contained in:
parent
cd5063555e
commit
c4bd46023b
2 changed files with 20 additions and 0 deletions
|
@ -342,4 +342,22 @@ ErrorOr<struct passwd> getpwnam(StringView name)
|
|||
return Error::from_string_literal("getpwnam: Unknown username"sv);
|
||||
}
|
||||
|
||||
ErrorOr<struct group> getgrnam(StringView name)
|
||||
{
|
||||
::setgrent();
|
||||
if (errno)
|
||||
return Error::from_syscall("getgrnam"sv, -errno);
|
||||
|
||||
while (auto* gr = ::getgrent()) {
|
||||
if (errno)
|
||||
return Error::from_syscall("getgrnam"sv, -errno);
|
||||
if (gr->gr_name == name)
|
||||
return *gr;
|
||||
}
|
||||
if (errno)
|
||||
return Error::from_syscall("getgrnam"sv, -errno);
|
||||
else
|
||||
return Error::from_string_literal("getgrnam: Unknown username"sv);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/Error.h>
|
||||
#include <grp.h>
|
||||
#include <pwd.h>
|
||||
#include <signal.h>
|
||||
#include <sys/stat.h>
|
||||
|
@ -47,5 +48,6 @@ ErrorOr<void> tcsetattr(int fd, int optional_actions, struct termios const&);
|
|||
ErrorOr<void> chmod(StringView pathname, mode_t mode);
|
||||
ErrorOr<void> chown(StringView pathname, uid_t uid, gid_t gid);
|
||||
ErrorOr<struct passwd> getpwnam(StringView name);
|
||||
ErrorOr<struct group> getgrnam(StringView name);
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue