pub trait FromRawFd {
// Required method
unsafe fn from_raw_fd(fd: RawFd) -> Self;
}
target_os=trusty or WASI or target_os=motor only.A trait to express the ability to construct an object from a raw file descriptor.
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.
The fd passed in must be an owned file descriptor; in particular, it must be open.
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) };This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
impl FromRawFd for FileAvailable on non-target_os=trusty only.
impl FromRawFd for PipeReaderAvailable on non-target_os=trusty only.
impl FromRawFd for PipeWriterAvailable on non-target_os=trusty only.
impl FromRawFd for TcpListenerAvailable on non-target_os=trusty only.
impl FromRawFd for TcpStreamAvailable on non-target_os=trusty only.
impl FromRawFd for UdpSocketAvailable on non-target_os=trusty only.
impl FromRawFd for StdioAvailable on Unix only.
impl FromRawFd for PidFdAvailable on Linux only.
impl FromRawFd for UnixDatagramAvailable on Unix only.
impl FromRawFd for UnixListenerAvailable on Unix only.
impl FromRawFd for UnixStreamAvailable on Unix only.
impl FromRawFd for OwnedFd
impl FromRawFd for RawFd
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/os/fd/trait.FromRawFd.html