fds are now typed fd_t