rustix::fd

Trait AsRawFd

1.0.0Source
pub trait AsRawFd {
    // Required method
    fn as_raw_fd(&self) -> i32;
}
馃憥Deprecated
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.0Source

fn as_raw_fd(&self) -> i32

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

1.48.0Source

impl AsRawFd for i32

1.0.0Source

impl AsRawFd for File

1.21.0Source

impl AsRawFd for Stderr

1.21.0Source

impl AsRawFd for Stdin

1.21.0Source

impl AsRawFd for Stdout

1.0.0Source

impl AsRawFd for TcpListener

1.0.0Source

impl AsRawFd for TcpStream

1.0.0Source

impl AsRawFd for UdpSocket

Source

impl AsRawFd for PidFd

1.10.0Source

impl AsRawFd for UnixDatagram

1.10.0Source

impl AsRawFd for UnixListener

1.10.0Source

impl AsRawFd for UnixStream

Source

impl AsRawFd for PipeReader

Source

impl AsRawFd for PipeWriter

1.2.0Source

impl AsRawFd for ChildStderr

1.2.0Source

impl AsRawFd for ChildStdin

1.2.0Source

impl AsRawFd for ChildStdout

1.63.0Source

impl AsRawFd for BorrowedFd<'_>

1.63.0Source

impl AsRawFd for OwnedFd

1.35.0Source

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

1.35.0Source

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

1.35.0Source

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

1.63.0Source

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

1.69.0Source

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

Source

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

1.63.0Source

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

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> {}