我想尝试在一些需要高性能的系统管理脚本中使用D(与Python/Perl等进行性能比较)。
到目前为止,我在查找教程时没有找到如何进行系统调用(即调用另一个软件)并从stdout接收其输出的示例(例如dsource.org等)。
如果我错过了,请问有人能指向正确的文档/教程,或者立即提供答案吗?
我想尝试在一些需要高性能的系统管理脚本中使用D(与Python/Perl等进行性能比较)。
到目前为止,我在查找教程时没有找到如何进行系统调用(即调用另一个软件)并从stdout接收其输出的示例(例如dsource.org等)。
如果我错过了,请问有人能指向正确的文档/教程,或者立即提供答案吗?
好的,我当然找到了它:http://www.digitalmars.com/d/2.0/phobos/std_process.html#shell(使用Tango库的版本在这里: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);
}
自从...std.process已经更新了,新的函数是spawnShell
import std.stdio;
import std.process;
void main(){
auto pid = spawnShell("ls -l");
write(pid);
}