#capture #stdio #process #stderr #stdin #stdout #output

nightly capture-stdio

捕获当前进程的 stdin/out/err

2 个版本

0.1.1 2022年8月13日
0.1.0 2022年8月13日

#24 in #stderr

MIT 许可证

10KB
237 行代码(不含注释)

capture-stdio

Rust 包用于捕获当前进程的 stdin/stdout/stderr。


lib.rs:

此包提供一些辅助函数,用于捕获当前进程的 stdin/out/err 以帮助模拟。

在测试中,cargo test 通过 std::io::set_output_capture 捕获 stdout/err。我们可以使用相同的机制来拦截 [print!] 和 [eprint!] 输出。该包通过 [OutputCapture] 包装调用,以便您可以轻松拦截输出。

该包还实现了一个 pipe-then-dup 方法来拦截 stdio。具体来说,它创建一个管道并替换 stdio 的 fd。您可以使用 [PipedStdin] 来拦截 stdin,使用 [PipedStdout] 来拦截 stdout,使用 [PipedStderr] 来拦截 stderr。

依赖项

~0–6.5MB
~30K SLoC