Bläddra i källkod

LibCore: Add Core::System wrapper for getsid()

Peter Elliott 2 år sedan
förälder
incheckning
71728f3ea6
2 ändrade filer med 9 tillägg och 0 borttagningar
  1. 8 0
      Userland/Libraries/LibCore/System.cpp
  2. 1 0
      Userland/Libraries/LibCore/System.h

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

@@ -747,6 +747,14 @@ ErrorOr<pid_t> setsid()
     return rc;
     return rc;
 }
 }
 
 
+ErrorOr<pid_t> getsid(pid_t pid)
+{
+    int rc = ::getsid(pid);
+    if (rc < 0)
+        return Error::from_syscall("getsid"sv, -errno);
+    return rc;
+}
+
 ErrorOr<void> drop_privileges()
 ErrorOr<void> drop_privileges()
 {
 {
     auto gid_result = setgid(getgid());
     auto gid_result = setgid(getgid());

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

@@ -141,6 +141,7 @@ ErrorOr<void> setgid(gid_t);
 ErrorOr<void> setegid(gid_t);
 ErrorOr<void> setegid(gid_t);
 ErrorOr<void> setpgid(pid_t pid, pid_t pgid);
 ErrorOr<void> setpgid(pid_t pid, pid_t pgid);
 ErrorOr<pid_t> setsid();
 ErrorOr<pid_t> setsid();
+ErrorOr<pid_t> getsid(pid_t pid = 0);
 ErrorOr<void> drop_privileges();
 ErrorOr<void> drop_privileges();
 ErrorOr<bool> isatty(int fd);
 ErrorOr<bool> isatty(int fd);
 ErrorOr<void> link(StringView old_path, StringView new_path);
 ErrorOr<void> link(StringView old_path, StringView new_path);