12 个稳定版本
2.1.2 | 2021 年 8 月 2 日 |
---|---|
2.1.1 | 2021 年 4 月 8 日 |
2.0.3 | 2021 年 3 月 20 日 |
1.0.1 | 2021 年 3 月 19 日 |
835 在 文件系统 中
每月 22 次下载
9KB
164 行
此 crate 使用 ipipe 库编译了 2 个二进制文件,用于与命名管道交互。二进制文件 pipe_listener
读取一个或多个命名管道的输出并将其写入标准输出。二进制文件 pipe_writer
读取标准输入并将其写入一个或多个命名管道。
这些程序可以很容易地组合使用,以随意重定向命名管道的 I/O。虽然它们专门设计用于与 ipipe
API 一起使用,但它们可以与(可能是)任何其他用于 Windows 或 Unix 命名管道的 API 独立使用。
安装方法
cargo安装 pipe_watcher
管道监听器
用法:pipe_listener [pipe_name...]
可以指定多个管道名称。
在终端中
pipe_listener my_pipe1
然后,在你的 Rust 程序中
use ipipe::*;
fn main()
{
ipipe::init("my_pipe1").unwrap();
pprintln!("my_pipe1", "A line sent to you from me!");
}
这就完成了!你应该能在终端中看到输出。
管道写入器
用法:pipe_writer [pipe_name...]
管道监听器二进制文件的逆过程。
在终端中
pipe_writer my_pipe1
在你的 Rust 程序中
use ipipe::*;
use std::io::{Read, BufReader};
fn main()
{
let pipe = ipipe::init("my_pipe1").unwrap();
loop
{
for line in BufReader:new(pipe.clone()).lines()
{
println!("{}", line);
}
}
}
然后开始输入终端,按回车键,看看魔法发生。注意,这些二进制文件默认不是按行缓冲。
管道名称
pipe_name 参数可以有两种解析方式
- 如果名称不包含正斜杠
/
或反斜杠\
字符,则将其视为 ipipe 管道名称。在 Windows 上表示为"\\.\pipe\pipe_name"
,在 Unix 系统上表示为/tmp/pipe_name
。 - 如果名称包含斜杠,则将其视为字面路径。这意味着路径必须格式正确才能在适当的操作系统上工作。
依赖关系
~2MB
~38K SLoC