2011-07-29 33 views
7

Tôi đã thử sử dụng D cho một số tập lệnh quản trị hệ thống yêu cầu hiệu năng cao (để so sánh hiệu suất với python/perl, v.v.).Cách thực hiện cuộc gọi hệ thống và đọc stdout, trong D?

Tôi không thể tìm thấy ví dụ trong hướng dẫn mà tôi đã xem qua (dsource.org v.v.) về cách thực hiện cuộc gọi hệ thống (ví dụ: gọi một phần mềm khác) và nhận đầu ra từ thiết bị xuất chuẩn?

Nếu tôi bỏ lỡ, ai đó có thể hướng tôi đến đúng tài liệu/hướng dẫn hoặc cung cấp câu trả lời ngay lập tức không?

Trả lời

12

Vâng, sau đó tôi tất nhiên đã tìm thấy nó: http://www.digitalmars.com/d/2.0/phobos/std_process.html#shell (Phiên bản sử dụng thư viện Tango tại đây: http://www.dsource.org/projects/tango/wiki/TutExec).

Phiên bản cũ là phiên bản hoạt động với D 2.0 (do đó trình biên dịch dmd hiện tại đi kèm với ubuntu).

Tôi có ví dụ nhỏ này để làm việc bây giờ, biên soạn với DMD:

import std.stdio; 
import std.process; 

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

Yes. Mặc dù tài liệu bị sai lệch, vì vậy bạn sẽ không thấy tài liệu đó tại thời điểm này. Điều đó cần phải được sửa ... –

+0

Một ví dụ cực kỳ hữu ích! – vines

0

std.process đã được cập nhật kể từ ... chức năng mới là spawnShell

import std.stdio; 
import std.process; 

void main(){ 
    auto pid = spawnShell("ls -l"); 
    write(pid); 
} 
Các vấn đề liên quan