在D中异步调用其他进程的首选方法是什么?我的用例是调用svn status
检查退出状态,并解析其标准输出和错误。
答案 0 :(得分:5)
我认为std.stdio.popen就是你想要的:
void popen(string command, in char[] stdioOpenmode = "r");
将其与File
一起使用,即可获得输出;类似的东西:
File f;
f.popen("svn status", "r");
char[] line;
string result;
while (f.readln(line))
result ~= line;
return result;
或者您可以使用显然为您执行此操作的std.process.shell(并在出错时抛出ErrnoException)。