2016-03-21 23 views
4

StdioタイプはFromRawFdを実装していますので、どのファイル記述子からでも1つ構築できます。 (私の場合、私はパイプを使用したい)それは私が必要とするものですが、私の問題は/stdout()/stderr()メソッドの値がStdioであるということです。つまり、Commandオブジェクトが有効範囲外になると、すべてのfdがクローズします。子プロセスにfdを参照するように指定する方法はありますか?そのため、子プロセスが終了した後も親プロセスで利用できるようになりますか?今私はちょうどlibc::dup()を各子供のために呼ぶために解決しました、それは素晴らしいようではありません。子プロセスにファイル記述子を付ける方法はありますか?

答えて

2

現在、より良い解決策はありません。しかし、正しい解決策はCommand::into_io(self) -> (Option<StdIo>, Option<StdIo>, Option<StdIo>)メソッドで、Commandを分解して、stdin、stdout、およびstderr(利用可能な場合)を返す方法です。

私はこの機能を追加するためにissueを提出しました。

関連する問題