# Trait std::os::fd::AsFd

1.63.0 · source ·

    pub trait AsFd {
        // Required method
        fn as_fd(&self) -> BorrowedFd<'_>;
    }

Expand description

A trait to borrow the file descriptor from an underlying object.

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

## Required Methods§

source

#### fn as_fd(&self) -> BorrowedFd<'_>

Borrows the file descriptor.

##### Example

    use std::fs::File;

    let mut f = File::open("foo.txt")?;
    let borrowed_fd: BorrowedFd<'_> = f.as_fd();

Run

## Implementors§

source§

### impl AsFd for File

source§

### impl AsFd for Stderr

source§

### impl AsFd for Stdin

source§

### impl AsFd for Stdout

source§

### impl AsFd for TcpListener

source§

### impl AsFd for TcpStream

source§

### impl AsFd for UdpSocket

source§

### impl AsFd for ChildStderr

Available on Unix only.
source§

### impl AsFd for ChildStdin

Available on Unix only.
source§

### impl AsFd for ChildStdout

Available on Unix only.
source§

### impl AsFd for PidFd

Available on Linux only.
source§

### impl AsFd for UnixDatagram

Available on Unix only.
source§

### impl AsFd for UnixListener

Available on Unix only.
source§

### impl AsFd for UnixStream

Available on Unix only.
source§

### impl AsFd for BorrowedFd<'_>

source§

### impl AsFd for OwnedFd

source§

### impl<'a> AsFd for StderrLock<'a>

source§

### impl<'a> AsFd for StdinLock<'a>

source§

### impl<'a> AsFd for StdoutLock<'a>

source§

### impl<T: AsFd> AsFd for &T

source§

### impl<T: AsFd> AsFd for &mut T

1.64.0 · source§

### impl<T: AsFd> AsFd for Box<T>

1.69.0 · source§

### impl<T: AsFd> AsFd for Rc<T>

1.64.0 · source§

### impl<T: AsFd> AsFd for Arc<T>

This impl allows implementing traits that require `AsFd` on Arc.

    use std::net::UdpSocket;
    use std::sync::Arc;

    trait MyTrait: AsFd {}
    impl MyTrait for Arc<UdpSocket> {}
    impl MyTrait for Box<UdpSocket> {}

Run