2012-12-12 12 views
5

Qual è il modo preferito di chiamare altri processi in modo asincrono in D? Il mio caso d'uso sta chiamando svn status controllando lo stato di uscita e analizzando il suo output standard e l'errore.Chiamate di processo asincrono

risposta

5

Credo std.stdio.popen è quello che volete:

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

usarlo con un File e si ottiene l'uscita; qualcosa di simile:

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

Oppure si può utilizzare std.process.shell che fa a quanto pare questo per voi (e lancia un ErrnoException in caso di errore).