# Trait rustix::fd::FromRawFd

1.1.0 · source · [−]

    pub trait FromRawFd {
        unsafe fn from_raw_fd(fd: i32) -> Self;
    }

Expand description

A trait to express the ability to construct an object from a raw file descriptor.

## Required Methods

source

#### unsafe fn from_raw_fd(fd: i32) -> Self

Constructs a new instance of `Self` from the given raw file descriptor.

This function is typically used to consume ownership of the specified file descriptor. When used in this way, the returned object will take responsibility for closing it when the object goes out of scope.

However, consuming ownership is not strictly required. Use a `From<OwnedFd>::from` implementation for an API which strictly consumes ownership.

##### Safety

The `fd` passed in must be a valid and open file descriptor.

##### Example

    use std::fs::File;
    #[cfg(unix)]
    use std::os::unix::io::{FromRawFd, IntoRawFd, RawFd};
    #[cfg(target_os = "wasi")]
    use std::os::wasi::io::{FromRawFd, IntoRawFd, RawFd};

    let f = File::open("foo.txt")?;
    let raw_fd: RawFd = f.into_raw_fd();
    // SAFETY: no other functions should call `from_raw_fd`, so there
    // is only one owner for the file descriptor.
    let f = unsafe { File::from_raw_fd(raw_fd) };

## Implementors

1.48.0 · source

### impl FromRawFd for i32

source

### impl FromRawFd for File

source

### impl FromRawFd for TcpListener

source

### impl FromRawFd for TcpStream

source

### impl FromRawFd for UdpSocket

source

### impl FromRawFd for PidFd

1.10.0 · source

### impl FromRawFd for UnixDatagram

1.10.0 · source

### impl FromRawFd for UnixListener

1.10.0 · source

### impl FromRawFd for UnixStream

1.2.0 · source

### impl FromRawFd for Stdio

1.63.0 · source

### impl FromRawFd for OwnedFd

source

### impl<'context, T: AsFd + Into<OwnedFd> + From<OwnedFd>> FromRawFd for Epoll<Owning<'context, T>>