pub trait FromRawFd {
// Required method
unsafe fn from_raw_fd(fd: RawFd) -> Self;
}
Expand description
A trait to express the ability to construct an object from a raw file descriptor.
Required Methods§
1.1.0 · Sourceunsafe fn from_raw_fd(fd: RawFd) -> Self
unsafe fn from_raw_fd(fd: RawFd) -> 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 an owned file descriptor;
in particular, it must be open.
§Example
use std::fs::File;
#[cfg(any(unix, target_os = "wasi"))]
use std::os::fd::{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) };
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
impl FromRawFd for File
impl FromRawFd for TcpListener
impl FromRawFd for TcpStream
impl FromRawFd for UdpSocket
impl FromRawFd for PipeReader
impl FromRawFd for PipeWriter
impl FromRawFd for Stdio
Available on Unix only.
impl FromRawFd for PidFd
Available on Linux only.
impl FromRawFd for UnixDatagram
Available on Unix only.
impl FromRawFd for UnixListener
Available on Unix only.
impl FromRawFd for UnixStream
Available on Unix only.