Trait std::os::unix::io::FromRawFd1.1.0[][src]

pub trait FromRawFd {
    unsafe fn from_raw_fd(fd: RawFd) -> Self;
}
This is supported on Unix only.
Expand description

trait 表示从原始文件描述符构造 object 的能力。

Required methods

根据给定的原始文件描述符构造 Self 的新实例。

此函数 消耗指定文件描述符的所有权。 当 object 离开作用域时,返回的 object 将负责关闭它。

此函数也是不安全的,因为当前返回的原语具有它们是包装的文件描述符的唯一所有者的约定。

使用此函数可能会意外地违反该协定,这可能导致依赖于该协定为真的代码中的内存不安全。

Example

use std::fs::File;
use std::os::unix::io::{FromRawFd, IntoRawFd, RawFd};

let f = File::open("foo.txt")?;
let raw_fd: RawFd = f.into_raw_fd();
// SAFETY: 没有其他函数可以调用 `from_raw_fd`,因此文件描述符只有一个所有者。
let f = unsafe { File::from_raw_fd(raw_fd) };
Run

Implementors