Skip to main content

AsRawFd

Trait AsRawFd 

1.66.0 · Source
pub trait AsRawFd {
    // Required method
    fn as_raw_fd(&self) -> RawFd;
}
Available on Unix or Hermit or Trusty or WASI or Motor OS only.
Expand description

A trait to extract the raw file descriptor from an underlying object.

This is only available on unix and WASI platforms and must be imported in order to call the method. Windows platforms have a corresponding AsRawHandle and AsRawSocket set of traits.

Required Methods§

1.0.0 · Source

fn as_raw_fd(&self) -> RawFd

Extracts the raw file descriptor.

This function is typically used to borrow an owned file descriptor. When used in this way, this method does not pass ownership of the raw file descriptor to the caller, and the file descriptor is only guaranteed to be valid while the original object has not yet been destroyed.

However, borrowing is not strictly required. See [AsFd::as_fd] for an API which strictly borrows a file descriptor.

§Example
use std::fs::File;
#[cfg(any(unix, target_os = "wasi"))]
use std::os::fd::{AsRawFd, RawFd};

let mut f = File::open("foo.txt")?;
// Note that `raw_fd` is only valid as long as `f` exists.
#[cfg(any(unix, target_os = "wasi"))]
let raw_fd: RawFd = f.as_raw_fd();

Implementors§

Source§

impl AsRawFd for Dir

1.0.0 · Source§

impl AsRawFd for std::fs::File

Available on non-Trusty only.
1.87.0 · Source§

impl AsRawFd for PipeReader

Available on non-Trusty only.
1.87.0 · Source§

impl AsRawFd for PipeWriter

Available on non-Trusty only.
1.21.0 · Source§

impl AsRawFd for Stderr

1.21.0 · Source§

impl AsRawFd for Stdin

Available on non-Trusty only.
1.21.0 · Source§

impl AsRawFd for Stdout

1.0.0 · Source§

impl AsRawFd for TcpListener

Available on non-Trusty only.
1.0.0 · Source§

impl AsRawFd for TcpStream

Available on non-Trusty only.
1.0.0 · Source§

impl AsRawFd for UdpSocket

Available on non-Trusty only.
1.2.0 · Source§

impl AsRawFd for ChildStderr

Available on non-Hermit and (Unix) and not ((WebAssembly and non-WASI, or Fortanix and SGX)) only.
1.2.0 · Source§

impl AsRawFd for ChildStdin

Available on non-Hermit and (Unix) and not ((WebAssembly and non-WASI, or Fortanix and SGX)) only.
1.2.0 · Source§

impl AsRawFd for ChildStdout

Available on non-Hermit and (Unix) and not ((WebAssembly and non-WASI, or Fortanix and SGX)) only.
Source§

impl AsRawFd for FileDesc

Source§

impl AsRawFd for std::sys::fs::unix::File

Source§

impl AsRawFd for Socket

Source§

impl AsRawFd for PidFd

Available on not ((WebAssembly and non-WASI, or Fortanix and SGX)) and (Linux) only.
1.10.0 · Source§

impl AsRawFd for UnixDatagram

Available on non-Hermit and (Unix) and not ((WebAssembly and non-WASI, or Fortanix and SGX)) only.
1.10.0 · Source§

impl AsRawFd for UnixListener

Available on non-Hermit and (Unix) and not ((WebAssembly and non-WASI, or Fortanix and SGX)) only.
1.10.0 · Source§

impl AsRawFd for UnixStream

Available on non-Hermit and (Unix) and not ((WebAssembly and non-WASI, or Fortanix and SGX)) only.
1.63.0 · Source§

impl AsRawFd for BorrowedFd<'_>

1.63.0 · Source§

impl AsRawFd for OwnedFd

1.48.0 · Source§

impl AsRawFd for RawFd

1.35.0 · Source§

impl<'a> AsRawFd for StderrLock<'a>

1.35.0 · Source§

impl<'a> AsRawFd for StdinLock<'a>

Available on non-Trusty only.
1.35.0 · Source§

impl<'a> AsRawFd for StdoutLock<'a>

Source§

impl<T: AsRawFd + ?Sized> AsRawFd for UniqueRc<T>

1.63.0 · Source§

impl<T: AsRawFd> AsRawFd for Box<T>

1.69.0 · Source§

impl<T: AsRawFd> AsRawFd for Rc<T>

1.63.0 · Source§

impl<T: AsRawFd> AsRawFd for Arc<T>

This impl allows implementing traits that require AsRawFd on Arc.

use std::net::UdpSocket;
use std::sync::Arc;
trait MyTrait: AsRawFd {
}
impl MyTrait for Arc<UdpSocket> {}
impl MyTrait for Box<UdpSocket> {}