W3cubDocs

/Rust

Trait AsRawFd

pub trait AsRawFd {
    // Required method
    fn as_raw_fd(&self) -> RawFd;
}
Available on Unix or HermitCore or target_os=trusty or WASI or target_os=motor only.

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) -> 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

1.0.0Source
impl AsRawFd for FileAvailable on non-target_os=trusty only.
1.87.0Source
impl AsRawFd for PipeReaderAvailable on non-target_os=trusty only.
1.87.0Source
impl AsRawFd for PipeWriterAvailable on non-target_os=trusty only.
1.21.0Source
impl AsRawFd for Stderr
1.21.0Source
impl AsRawFd for StdinAvailable on non-target_os=trusty only.
1.21.0Source
impl AsRawFd for Stdout
1.0.0Source
impl AsRawFd for TcpListenerAvailable on non-target_os=trusty only.
1.0.0Source
impl AsRawFd for TcpStreamAvailable on non-target_os=trusty only.
1.0.0Source
impl AsRawFd for UdpSocketAvailable on non-target_os=trusty only.
1.2.0Source
impl AsRawFd for ChildStderrAvailable on Unix only.
1.2.0Source
impl AsRawFd for ChildStdinAvailable on Unix only.
1.2.0Source
impl AsRawFd for ChildStdoutAvailable on Unix only.
Source
impl AsRawFd for PidFdAvailable on Linux only.
1.10.0Source
impl AsRawFd for UnixDatagramAvailable on Unix only.
1.10.0Source
impl AsRawFd for UnixListenerAvailable on Unix only.
1.10.0Source
impl AsRawFd for UnixStreamAvailable on Unix only.
1.63.0Source
impl AsRawFd for BorrowedFd<'_>
1.63.0Source
impl AsRawFd for OwnedFd
1.48.0Source
impl AsRawFd for RawFd
1.35.0Source
impl<'a> AsRawFd for StderrLock<'a>
1.35.0Source
impl<'a> AsRawFd for StdinLock<'a>Available on non-target_os=trusty only.
1.35.0Source
impl<'a> AsRawFd for StdoutLock<'a>
Source
impl<T: AsRawFd + ?Sized> AsRawFd for UniqueRc<T>
1.63.0Source
impl<T: AsRawFd> AsRawFd for Box<T>
1.69.0Source
impl<T: AsRawFd> AsRawFd for Rc<T>
1.63.0Source
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> {}

© 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.AsRawFd.html