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

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

一个表示从原始文件描述符构造对象的能力的 trait。

Required methods

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

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

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

该函数的使用可能会意外地允许违反该契约,这可能会导致依赖该契约的代码的内存不安全。

Example
use std::fs::File;
#[cfg(unix)]
use std::os::unix::io::{FromRawFd, IntoRawFd, RawFd};
#[cfg(target_os = "wasi")]
use std::os::wasi::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