mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
std: Wrap setpgid on POSIX
This commit is contained in:
parent
179a6e61e8
commit
d6fa71cd67
3 changed files with 23 additions and 0 deletions
|
|
@ -9167,6 +9167,7 @@ pub extern "c" fn setreuid(ruid: uid_t, euid: uid_t) c_int;
|
|||
pub extern "c" fn setregid(rgid: gid_t, egid: gid_t) c_int;
|
||||
pub extern "c" fn setresuid(ruid: uid_t, euid: uid_t, suid: uid_t) c_int;
|
||||
pub extern "c" fn setresgid(rgid: gid_t, egid: gid_t, sgid: gid_t) c_int;
|
||||
pub extern "c" fn setpgid(pid: pid_t, pgid: pid_t) c_int;
|
||||
|
||||
pub extern "c" fn malloc(usize) ?*anyopaque;
|
||||
pub extern "c" fn realloc(?*anyopaque, usize) ?*anyopaque;
|
||||
|
|
|
|||
|
|
@ -1551,6 +1551,10 @@ pub fn setresgid(rgid: gid_t, egid: gid_t, sgid: gid_t) usize {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn setpgid(pid: pid_t, pgid: pid_t) usize {
|
||||
return syscall2(.setpgid, @intCast(pid), @intCast(pgid));
|
||||
}
|
||||
|
||||
pub fn getgroups(size: usize, list: *gid_t) usize {
|
||||
if (@hasField(SYS, "getgroups32")) {
|
||||
return syscall2(.getgroups32, size, @intFromPtr(list));
|
||||
|
|
|
|||
|
|
@ -3415,6 +3415,24 @@ pub fn setregid(rgid: gid_t, egid: gid_t) SetIdError!void {
|
|||
}
|
||||
}
|
||||
|
||||
pub const SetPgidError = error{
|
||||
ProcessAlreadyExec,
|
||||
InvalidProcessGroupId,
|
||||
PermissionDenied,
|
||||
ProcessNotFound,
|
||||
} || UnexpectedError;
|
||||
|
||||
pub fn setpgid(pid: pid_t, pgid: pid_t) SetPgidError!void {
|
||||
switch (errno(system.setpgid(pid, pgid))) {
|
||||
.SUCCESS => return,
|
||||
.ACCES => return error.ProcessAlreadyExec,
|
||||
.INVAL => return error.InvalidProcessGroupId,
|
||||
.PERM => return error.PermissionDenied,
|
||||
.SRCH => return error.ProcessNotFound,
|
||||
else => |err| return unexpectedErrno(err),
|
||||
}
|
||||
}
|
||||
|
||||
/// Test whether a file descriptor refers to a terminal.
|
||||
pub fn isatty(handle: fd_t) bool {
|
||||
if (native_os == .windows) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue