std.posix: implemented getpid and getppid

This commit is contained in:
Giuseppe Cesarano 2025-11-07 08:52:35 +01:00
parent a6d444c271
commit 5c0309a9e5
No known key found for this signature in database
GPG key ID: A276B3B41697E525
2 changed files with 23 additions and 0 deletions

View file

@ -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{ pub const ExecveError = error{
SystemResources, SystemResources,
AccessDenied, AccessDenied,

View file

@ -621,6 +621,21 @@ test "dup & dup2" {
try testing.expectEqualStrings("dupdup2", try tmp.dir.readFile("os_dup_test", &buffer)); 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" { test "writev longer than IOV_MAX" {
if (native_os == .windows or native_os == .wasi) return error.SkipZigTest; if (native_os == .windows or native_os == .wasi) return error.SkipZigTest;