2011-07-29 18 views
7

Pensé en intentar usar D para algunos scripts de administración de sistemas que requieren un alto rendimiento (para comparar el rendimiento con python/perl, etc.).¿Cómo hacer una llamada al sistema y leer el stdout, en D?

No encuentro un ejemplo en los tutoriales que examiné hasta ahora (dsource.org etc.) sobre cómo hacer una llamada al sistema (es decir, llamar a otro software) y recibir su salida de stdout.

Si me lo perdí, ¿podría alguien indicarme el documento/tutorial correcto, o proporcionar la respuesta de inmediato?

Respuesta

12

Bueno, entonces, por supuesto, lo encontré: http://www.digitalmars.com/d/2.0/phobos/std_process.html#shell (Versión que utiliza la biblioteca de Tango aquí: http://www.dsource.org/projects/tango/wiki/TutExec).

La versión anterior es la que funciona con D 2.0 (por lo tanto, el compilador dmd actual que viene con ubuntu).

Tengo este pequeño ejemplo para trabajar ahora, compilado con DMD:

import std.stdio; 
import std.process; 

void main() { 
    string output = shell("ls -l"); 
    write(output); 
} 
+0

Sí. Aunque la documentación está en mal estado, entonces no la verías allí en este momento. Eso necesita ser arreglado ... –

+0

¡Un ejemplo extremadamente útil! – vines

0

std.process se ha actualizado desde ... la nueva función es spawnShell

import std.stdio; 
import std.process; 

void main(){ 
    auto pid = spawnShell("ls -l"); 
    write(pid); 
} 
Cuestiones relacionadas