【发布时间】:2023-03-23 04:07:01
【问题描述】:
我正在尝试生成一个进程并将其标准输出记录到一个文件中。
我的尝试是:
let mut log = String::new();
let output = Command::new("git")
.current_dir(&cwd)
.arg("pull")
.arg("--rebase=merges")
.output()
.expect("Error doing git pull");
log.push_str("\nOUTPUT\n");
log.push_str(&output.stdout);
但这会导致类型不匹配的错误。如何捕获 output.stdout 以写入字符串,或者更好地写入文件?
谢谢!
【问题讨论】:
-
你试过匹配类型吗? Command::output 返回字节向量,而 push_str 采用
&str。如果有这样的函数需要一个字节序列并将其转换为&str。如果它存在,它可能会在std::str模块中定义。