rust – 以什么方式为子进程提供文件描述符而不关闭它?

Stdio类型实现了FromRawFd,它允许我从任何文件描述符中构建一个. (在我的例子中,我想使用管道.)这正是我需要的,但我的问题是stdin()/ stdout()/ stderr()方法按值获取他们的Stdio参数.这意味着当Command对象超出范围时,其所有fd都将关闭.是否有任何方法可以通过引用为子进程提供fd,以便在子进程完成后它仍可在父进程中使用?现在我已经决定只为每个孩子调用libc :: dup(),这看起来不太好. 最佳答案 目前没有更好的解决方案,唉.但是,正确的解决方案是Command :: into_io(self) – > (选项< StdIo>,选项< StdIo>,选项< StdIo>)方法,解析命令以返回stdin,stdout和stderr(如果可用).

我已经提交了issue来添加该功能.

点赞