LibCore: Add a Core::System wrapper around unsetenv

This commit is contained in:
Timothy Flynn 2023-11-07 11:11:39 -05:00 committed by Andreas Kling
parent 2437064820
commit 6655de189f
2 changed files with 14 additions and 0 deletions

View file

@ -1639,6 +1639,19 @@ ErrorOr<void> setenv(StringView name, StringView value, bool overwrite)
return {};
}
ErrorOr<void> unsetenv(StringView name)
{
auto builder = TRY(StringBuilder::create());
TRY(builder.try_append(name));
TRY(builder.try_append('\0'));
// Note the explicit null terminator above.
auto rc = ::unsetenv(builder.string_view().characters_without_null_termination());
if (rc < 0)
return Error::from_errno(errno);
return {};
}
ErrorOr<void> putenv(StringView env)
{
#ifdef AK_OS_SERENITY

View file

@ -229,6 +229,7 @@ ErrorOr<void> setgroups(ReadonlySpan<gid_t>);
ErrorOr<void> mknod(StringView pathname, mode_t mode, dev_t dev);
ErrorOr<void> mkfifo(StringView pathname, mode_t mode);
ErrorOr<void> setenv(StringView, StringView, bool);
ErrorOr<void> unsetenv(StringView);
ErrorOr<void> putenv(StringView);
ErrorOr<int> posix_openpt(int flags);
ErrorOr<void> grantpt(int fildes);