| author | |
| committer | |
| log | d6fa71cd67b35f6fdb7a19a9728ff66247ab13c8 |
| tree | 09045dc9677fcb54bbd5e308c4554d8e319ee109 |
| parent | 179a6e61e8be2e5736e9cab9661f04269907247c |
| signature |
3 files changed, 23 insertions(+), 0 deletions(-)
lib/std/c.zig+1| ... | ... | @@ -9167,6 +9167,7 @@ pub extern "c" fn setreuid(ruid: uid_t, euid: uid_t) c_int; |
| 9167 | 9167 | pub extern "c" fn setregid(rgid: gid_t, egid: gid_t) c_int; |
| 9168 | 9168 | pub extern "c" fn setresuid(ruid: uid_t, euid: uid_t, suid: uid_t) c_int; |
| 9169 | 9169 | pub extern "c" fn setresgid(rgid: gid_t, egid: gid_t, sgid: gid_t) c_int; |
| 9170 | pub extern "c" fn setpgid(pid: pid_t, pgid: pid_t) c_int; | |
| 9170 | 9171 | |
| 9171 | 9172 | pub extern "c" fn malloc(usize) ?*anyopaque; |
| 9172 | 9173 | pub extern "c" fn realloc(?*anyopaque, usize) ?*anyopaque; |
lib/std/os/linux.zig+4| ... | ... | @@ -1551,6 +1551,10 @@ pub fn setresgid(rgid: gid_t, egid: gid_t, sgid: gid_t) usize { |
| 1551 | 1551 | } |
| 1552 | 1552 | } |
| 1553 | 1553 | |
| 1554 | pub fn setpgid(pid: pid_t, pgid: pid_t) usize { | |
| 1555 | return syscall2(.setpgid, @intCast(pid), @intCast(pgid)); | |
| 1556 | } | |
| 1557 | ||
| 1554 | 1558 | pub fn getgroups(size: usize, list: *gid_t) usize { |
| 1555 | 1559 | if (@hasField(SYS, "getgroups32")) { |
| 1556 | 1560 | return syscall2(.getgroups32, size, @intFromPtr(list)); |
lib/std/posix.zig+18| ... | ... | @@ -3415,6 +3415,24 @@ pub fn setregid(rgid: gid_t, egid: gid_t) SetIdError!void { |
| 3415 | 3415 | } |
| 3416 | 3416 | } |
| 3417 | 3417 | |
| 3418 | pub const SetPgidError = error{ | |
| 3419 | ProcessAlreadyExec, | |
| 3420 | InvalidProcessGroupId, | |
| 3421 | PermissionDenied, | |
| 3422 | ProcessNotFound, | |
| 3423 | } || UnexpectedError; | |
| 3424 | ||
| 3425 | pub fn setpgid(pid: pid_t, pgid: pid_t) SetPgidError!void { | |
| 3426 | switch (errno(system.setpgid(pid, pgid))) { | |
| 3427 | .SUCCESS => return, | |
| 3428 | .ACCES => return error.ProcessAlreadyExec, | |
| 3429 | .INVAL => return error.InvalidProcessGroupId, | |
| 3430 | .PERM => return error.PermissionDenied, | |
| 3431 | .SRCH => return error.ProcessNotFound, | |
| 3432 | else => |err| return unexpectedErrno(err), | |
| 3433 | } | |
| 3434 | } | |
| 3435 | ||
| 3418 | 3436 | /// Test whether a file descriptor refers to a terminal. |
| 3419 | 3437 | pub fn isatty(handle: fd_t) bool { |
| 3420 | 3438 | if (native_os == .windows) { |