Commit 5c0309a9e5

Giuseppe Cesarano <PecoraInPannaCotta@gmail.com>
2025-11-07 08:52:35
std.posix: implemented getpid and getppid
1 parent a6d444c
Changed files (2)
lib
lib/std/posix/test.zig
@@ -621,6 +621,21 @@ test "dup & dup2" {
     try testing.expectEqualStrings("dupdup2", try tmp.dir.readFile("os_dup_test", &buffer));
 }
 
+test "getpid" {
+    if (native_os == .wasi) return error.SkipZigTest;
+    if (native_os == .windows) return error.SkipZigTest;
+
+    try expect(posix.getpid() != 0);
+}
+
+test "getppid" {
+    if (native_os == .wasi) return error.SkipZigTest;
+    if (native_os == .windows) return error.SkipZigTest;
+    if (native_os == .plan9 and !builtin.link_libc) return error.SkipZigTest;
+
+    try expect(posix.getppid() >= 0);
+}
+
 test "writev longer than IOV_MAX" {
     if (native_os == .windows or native_os == .wasi) return error.SkipZigTest;
 
lib/std/posix.zig
@@ -1699,6 +1699,14 @@ pub fn dup2(old_fd: fd_t, new_fd: fd_t) !void {
     }
 }
 
+pub fn getpid() pid_t {
+    return system.getpid();
+}
+
+pub fn getppid() pid_t {
+    return system.getppid();
+}
+
 pub const ExecveError = error{
     SystemResources,
     AccessDenied,