#exec #fork #process #spawn #unix

bin+lib closefds

在 fork 后和 exec 之前设置文件描述符 FD_CLOEXEC 标志的功能

1 个不稳定版本

0.1.0 2019 年 4 月 11 日

#14 in #exec

MIT/Apache

12KB
146

closefds

closefds 是一个库,为 UNIX 类系统在 fork 之后和 exec 之前设置所有打开的文件描述符的 FD_CLOEXEC 标志提供支持。

未标记此标志的任何文件描述符在 exec() 后将保持打开状态,这可能导致资源泄漏并可能导致死锁。理想情况下,每当创建一个文件描述符时,它都应该已经带有 FD_CLOEXEC 标志。然而,在某些情况下这可能并不可能,例如,在使用不支持 FD_CLOEXEC 标志的外部库或系统调用时,例如 pipe()

函数 close_fds_on_exec() 将创建一个闭包,该闭包可以作为通过 Command 接口启动子进程时的 pre_exec() 函数传递,并将适当的 FD_CLOEXEC 标志设置在打开的文件描述符上。


lib.rs:

closefds 是一个库,为 UNIX 类系统在 fork 之后和 exec 之前设置所有打开的文件描述符的 FD_CLOEXEC 标志提供支持。

未标记此标志的任何文件描述符在 exec() 后将保持打开状态,这可能导致资源泄漏并可能导致死锁。理想情况下,每当创建一个文件描述符时,它都应该已经带有 FD_CLOEXEC 标志。然而,在某些情况下这可能并不可能,例如,在使用不支持 FD_CLOEXEC 标志的外部库或系统调用时,例如 pipe()

函数 close_fds_on_exec() 将创建一个闭包,该闭包可以作为通过 Command 接口启动子进程时的 pre_exec() 函数传递,并将适当的 FD_CLOEXEC 标志设置在打开的文件描述符上。

依赖关系

~230KB