fn fileIsTty(userdata: ?*anyopaque, file: File) Io.Cancelable!bool
fn fileIsTty(userdata: ?*anyopaque, file: File) Io.Cancelable!bool { const ev: *Evented = @ptrCast(@alignCast(userdata)); var sync: CancelRegion.Sync = try .init(ev); defer sync.deinit(ev); while (true) { try sync.cancel_region.await(.nothing); var wsz: winsize = undefined; const rc = linux.ioctl(file.handle, linux.T.IOCGWINSZ, @intFromPtr(&wsz)); switch (linux.errno(rc)) { .SUCCESS => return true, .INTR => {}, else => return false, } } }