diff --git a/Userland/Libraries/LibCore/System.cpp b/Userland/Libraries/LibCore/System.cpp index 54a04e9002..4014830411 100644 --- a/Userland/Libraries/LibCore/System.cpp +++ b/Userland/Libraries/LibCore/System.cpp @@ -380,4 +380,12 @@ ErrorOr posix_spawnp(StringView const path, posix_spawn_file_actions_t* c return child_pid; } +ErrorOr waitpid(pid_t waitee, int* wstatus, int options) +{ + pid_t pid = ::waitpid(waitee, wstatus, options); + if (pid < 0) + return Error::from_syscall("waitpid"sv, -errno); + return pid; +} + } diff --git a/Userland/Libraries/LibCore/System.h b/Userland/Libraries/LibCore/System.h index e9d8dd8b8e..32d4beb711 100644 --- a/Userland/Libraries/LibCore/System.h +++ b/Userland/Libraries/LibCore/System.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -53,5 +54,6 @@ ErrorOr getpwnam(StringView name); ErrorOr getgrnam(StringView name); ErrorOr clock_settime(clockid_t clock_id, struct timespec* ts); ErrorOr 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 waitpid(pid_t waitee, int* wstatus, int options); }