Bladeren bron

LibCore: Add waitpid() wrapper that return ErrorOr<pid_t>

Kenneth Myhra 3 jaren geleden
bovenliggende
commit
11578c623c
2 gewijzigde bestanden met toevoegingen van 10 en 0 verwijderingen
  1. 8 0
      Userland/Libraries/LibCore/System.cpp
  2. 2 0
      Userland/Libraries/LibCore/System.h

+ 8 - 0
Userland/Libraries/LibCore/System.cpp

@@ -380,4 +380,12 @@ ErrorOr<pid_t> posix_spawnp(StringView const path, posix_spawn_file_actions_t* c
     return child_pid;
 }
 
+ErrorOr<pid_t> 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;
+}
+
 }

+ 2 - 0
Userland/Libraries/LibCore/System.h

@@ -13,6 +13,7 @@
 #include <signal.h>
 #include <spawn.h>
 #include <sys/stat.h>
+#include <sys/wait.h>
 #include <termios.h>
 #include <time.h>
 
@@ -53,5 +54,6 @@ ErrorOr<struct passwd> getpwnam(StringView name);
 ErrorOr<struct group> getgrnam(StringView name);
 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);
 
 }