diff --git a/mod.zig b/mod.zig index 8fc47a83b94441a74ae86de81f8d7a8a7c0390ea..8515021af2ec3450cde92d7bbc9eb3a716b38817 100644 --- a/mod.zig +++ b/mod.zig @@ -659,7 +659,13 @@ pub fn getpgrp() errno.Error!pid_t { // setsid // pid_t setsid(void); // asmlinkage long sys_setsid(void); -pub const setsid = @compileError("TODO: setsid"); +pub fn setsid() errno.Error!pid_t { + const r = syscall0(.setsid); + return switch (_errno(r)) { + .ok => @intCast(r), + _ => |c| errno.errorFromInt(@intFromEnum(c)), + }; +} // setreuid // int setreuid(uid_t ruid, uid_t euid); diff --git a/test.zig b/test.zig index 337de32f144694c955398fcb9ff93455539f1ce9..478db29e179388c80ac5380be1ba5185621f3876 100644 --- a/test.zig +++ b/test.zig @@ -18,4 +18,5 @@ test { _ = &linux.getegid; _ = &linux.getppid; _ = &linux.getpgrp; + _ = &linux.setsid; }