在Dart中从流程中传输stdout的最佳方法是什么?

时间:2015-10-21 04:46:24

标签: dart dart-io

我想运行一个Process,并将进程的stdout流式传输到控制台。什么是最好的(最有效,最容易理解,最少的代码行)方法呢?

例如:

var process = await Process.start(exec, args);

我希望在有空的时候看到任何标准内容。

谢谢!

3 个答案:

答案 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之类的东西也会被传递。 >