Currently only raw file descriptors are supported. Should we allow for a `FileHandle` to be passed as `fd`?