fn dup2(ev: *Evented, old_fd: c.fd_t, new_fd: c.fd_t) DupError!void
fn dup2(ev: *Evented, old_fd: c.fd_t, new_fd: c.fd_t) DupError!void { _ = ev; while (true) switch (c.errno(c.dup2(old_fd, new_fd))) { .SUCCESS => return, .BUSY, .INTR => {}, .INVAL => |err| return errnoBug(err), // invalid parameters .BADF => |err| return errnoBug(err), // use after free .MFILE => return error.ProcessFdQuotaExceeded, .NOMEM => return error.SystemResources, else => |err| return unexpectedErrno(err), }; }