我想运行一个Process,并将进程的stdout流式传输到控制台。什么是最好的(最有效,最容易理解,最少的代码行)方法呢?
例如:
var process = await Process.start(exec, args);
我希望在有空的时候看到任何标准内容。
谢谢!
答案 0 :(得分:2)
或
var process = await Process.start(exec, args);
process.stdout.pipe(stdout);
答案 1 :(得分:1)
以这种方式:
var process = await Process.start(exec, args);
stdout.addStream(process.stdout);
请注意,我将process.stdout
流添加到普通stdout
流,该流来自dart:io
。
答案 2 :(得分:0)
为完整起见,您可以在mode
中使用Process.start
参数并传递ProcessStartMode.inheritStdio
var process = await Process.start(
command,
args,
mode: ProcessStartMode.inheritStdio
);
但是要小心,正如模式名称所暗示的那样,这会将所有stdio从进程(stdin,stdout和stderr)传递到默认的stdout,这可能会导致意外的结果,因为诸如sigterms之类的东西也会被传递。 >