2011-07-29 39 views
7

我想爲一些需要高性能的系統管理腳本(用於比較python/perl等的性能)嘗試使用D如何進行系統調用並讀取D中的stdout?

雖然我無法在教程中找到關於如何進行系統調用(即調用另一個軟件)並從stdout接收輸出的示例(dsource.org等)?

如果我錯過了,有人可以指點我正確的文檔/教程,或立即提供答案?

回答

12

那麼,我當然發現它:http://www.digitalmars.com/d/2.0/phobos/std_process.html#shell(版本使用探戈庫在這裏:http://www.dsource.org/projects/tango/wiki/TutExec)。

以前的版本是與D 2.0(從而與Ubuntu的目前的dmd編譯器)一起工作的版本。

我這個小例子現在的工作,與DMD編譯:

import std.stdio; 
import std.process; 

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

是。儘管文檔已經搞亂了,所以你現在看不到它。這需要修復... –

+0

一個非常有用的例子! – vines

0

std.process已經更新,因爲......新功能spawnShell

import std.stdio; 
import std.process; 

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