Function dup2 [src]
Prototype
pub fn dup2(old: i32, new: i32) usize
Parameters
old: i32
new: i32
Source
pub fn dup2(old: i32, new: i32) usize {
if (@hasField(SYS, "dup2")) {
return syscall2(.dup2, @as(usize, @bitCast(@as(isize, old))), @as(usize, @bitCast(@as(isize, new))));
} else {
if (old == new) {
if (std.debug.runtime_safety) {
const rc = fcntl(F.GETFD, @as(fd_t, old), 0);
if (@as(isize, @bitCast(rc)) < 0) return rc;
}
return @as(usize, @intCast(old));
} else {
return syscall3(.dup3, @as(usize, @bitCast(@as(isize, old))), @as(usize, @bitCast(@as(isize, new))), 0);
}
}
}