2012-12-12 5 views
5

Wie wird der andere Prozess bevorzugt, um andere Prozesse asynchron in D aufzurufen? Mein Anwendungsfall ruft svn status auf, überprüft den Exit-Status und analysiert seine Standardausgabe und seinen Standardfehler.Asynchrone Prozessaufrufe

Antwort

5

ich std.stdio.popen denken, was Sie wollen:

void popen(string command, in char[] stdioOpenmode = "r"); 

Verwenden Sie es mit einem File und Sie die Ausgabe erhalten; so etwas wie:

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

Oder Sie können std.process.shell verwenden, die anscheinend das für Sie tut (und wirft ein ErrnoException auf Fehler).