10个版本 (5个重大更新)

0.6.3 2023年9月20日
0.6.1 2022年10月11日
0.5.0 2021年7月3日
0.3.0 2020年10月5日
0.2.0 2020年6月27日

#285 in Unix API

Download history 7646/week @ 2024-03-14 6977/week @ 2024-03-21 7676/week @ 2024-03-28 7944/week @ 2024-04-04 6848/week @ 2024-04-11 7351/week @ 2024-04-18 8555/week @ 2024-04-25 8223/week @ 2024-05-02 6781/week @ 2024-05-09 8279/week @ 2024-05-16 5098/week @ 2024-05-23 8081/week @ 2024-05-30 6315/week @ 2024-06-06 6931/week @ 2024-06-13 7640/week @ 2024-06-20 6283/week @ 2024-06-27

28,504次每月下载
用于 5 个crate(4个直接使用)

BSD-2-Clause

15KB
141

filedesc docs tests

此crate公开了一个类型:FileDesc,它作为打开文件描述符的薄封装。当封装器被丢弃时,封装的文件描述符将被关闭。

您可以调用 FileDesc::new() 与实现了 IntoRawFd 的任何类型,或者使用 duplicate_from 复制实现了 AsRawFd 的类型的文件描述符,或者直接使用 from_raw_fd()duplicate_raw_fd() 从原始文件描述符。封装的文件描述符也可以使用 duplicate() 函数进行复制。

在执行时关闭

每当库复制一个文件描述符时,它都会尝试原子性地设置 close-on-exec 标志。在不支持此功能的平台上,库将回退到非原子性地设置标志。当封装现有的文件描述符时,close-on-exec 标志将被保留不变。

您还可以使用get_close_on_exec()set_close_on_exec函数来检查或设置close-on-exec标志。

示例

use filedesc::FileDesc;
let fd = unsafe { FileDesc::from_raw_fd(raw_fd) };
let duplicated = unsafe { fd.duplicate()? };
assert_eq!(duplicated.get_close_on_exec()?, true);

duplicated.set_close_on_exec(false)?;
assert_eq!(duplicated.get_close_on_exec()?, false);

依赖项

~43KB