异步处理调用

Nor*_*löw 5 asynchronous ipc d process

在D中异步调用其他进程的首选方法是什么?我的用例是调用svn status检查退出状态,并解析其标准输出和错误.

scr*_*cry 5

我认为std.stdio.popen就是你想要的:

void popen(string command, in char[] stdioOpenmode = "r");
Run Code Online (Sandbox Code Playgroud)

与它一起使用File,你得到输出; 就像是:

File f;
f.popen("svn status", "r");
char[] line;
string result;
while (f.readln(line))
    result ~= line;
return result;
Run Code Online (Sandbox Code Playgroud)

或者您可以使用std.process.shell,它显然会为您执行此操作(并在出错时抛出ErrnoException).