2009-11-05 41 views
53

Tôi cần thực hiện một chương trình và truy xuất đầu ra stdout của nó bằng C++. Tôi cũng muốn mã của mình là nền tảng chéo.Boost.Process ở đâu?

Có gần đây đã khám phá thế giới tuyệt vời của thư viện Boost C++ cho tất cả các nhu cầu nền tảng chéo của bạn, tôi figured tôi chỉ cần đi đến boost.org và đọc trên các tài liệu của Boost.Process. Thật ngạc nhiên, nó không có ở đó! Sau đó tôi tiếp tục tìm ra tên Boost đã đưa thư viện đa nền tảng của họ bắt đầu các quy trình bên ngoài, nhưng chưa quản lý để tìm ra nó cho đến nay.

Tìm kiếm trên Google đã đưa tôi đến Julio M. Merino Vidal's Boost.Process, thư viện này dường như là thư viện Boost không chính thức mà tôi đang tìm kiếm. Thật kỳ lạ, tôi dường như không thể tìm thấy liên kết tải xuống trên trang web đó. Nó cũng có vẻ như không có bất kỳ sự phát triển gần đây liên quan đến dự án.

Tôi cuối cùng cũng có thể tìm thấy liên kết tải xuống cho chương trình Boost.Process của Vidal trên external site và sẽ sử dụng điều đó ngay bây giờ, nhưng tôi khá ngạc nhiên trước nỗ lực của mình. C++ thư viện để tương tác với các tiến trình bên ngoài.

Vì vậy, tại sao không có Boost.Process chính thức? Nó có vẻ như nó sẽ là một bổ sung rất có giá trị. Hay tôi hoàn toàn nhìn ra giải pháp rõ ràng ở đây? Có lẽ bạn có thể đề nghị các thư viện đa nền tảng khác để quản lý khởi đầu đơn giản và tương tác với các quy trình bên ngoài?

+1

Chúc mừng bạn đã khám phá - Đá tăng cường! – vehomzzz

+0

Tăng cường đá nhưng chưa có thư viện quy trình chính thức. Đối với những gì nó có giá trị, tôi đã sử dụng thành công thư viện Poco Process trong quá khứ (Google cho các thư viện Poco C++ để biết thêm thông tin). – StackedCrooked

Trả lời

29

Julio M. Merino Vidal, người mà, tôi tin, tác giả gốc, đã viết trong this 2007 post rằng anh không có thời gian để hoàn thành nó.

Phát triển đã được thực hiện bởi Boris Schaeling. Đây là phiên bản bạn tìm thấy tại http://www.highscore.de/boost/process/. Theo điều này post, ông vẫn đang tích cực phát triển nó.

Có một phiên bản khác, theo số Ilya Sokolov.

Đối với câu hỏi khác của bạn:

Ông có thể có lẽ đề nghị các thư viện nền tảng khác để quản lý khởi đầu đơn giản và interation với các quá trình bên ngoài?

bạn có thể xem this wiki page lựa chọn danh sách thay thế.

Tùy thuộc vào nhu cầu của bạn, popen() cũng có thể thực hiện công việc.

+7

Chỉ cần hoàn thành thông tin ở đây, tôi sẽ liên kết [lịch biểu xem xét] (http://www.boost.org/community/review_schedule.html) trong đó nêu rõ rằng boost.process đã bị [từ chối] (http: // lists.boost.org/boost-announce/2011/03/0292.php). – dave

+3

Câu trả lời này không được cập nhật nữa, hãy xem câu trả lời của cộng đồng wiki. – Klaim

1

Các bộ phận của Boost.Process có sẵn trong một số thư viện độc lập trong Boost bây giờ: Boost.Interprocess, Options Chương trình vv

3

Dường như Boost.Process là trong sandbox area, mà sẽ đề nghị rằng nó đã được đề xuất đưa vào và có thể vẫn đang được thực hiện, nhưng chưa được coi là ổn định, được ghi lại và/hoặc hữu ích, đủ để được đưa vào bản phát hành chính.

4

tùy chọn khác có được những thiết kế theo mô đun POCO, xem Process::launch() trong đó có một tình trạng quá tải mà sẽ đưa Pipes cho trong, ralỗi.

8

Quy trình tăng cường là một trong những dự án về Mã mùa hè của Google trong năm nay. Trang web Quy trình tăng cường GSOC 2010 là http://www.highscore.de/boost/gsoc2010/.

Thư viện vẫn không chính thức, nhưng các nhà phát triển cảm thấy rằng thư viện này đủ ổn định để request formal review.

+2

http://lists.boost.org/Archives/boost/2010/08/169915.php – vladr

+2

Bài đăng bị từ chối do nhiều mối quan tâm khác nhau, tôi hy vọng họ sẽ giải quyết những vấn đề đó và gửi lại. – maep

8

Tính đến ngày 18 tháng 8 năm 2012, một phiên bản mới hơn của Boost.Process (v0.5) đã được phát hành tại http://www.highscore.de/boost/process0.5/

hy vọng rằng sẽ giúp, Philipp

54

Boost.Process là accepted for inclusion into Boost on November 9, 2016; và has been included in the 1.64 được phát hành vào ngày 19 tháng 4 năm 2017. Boost.Process hiện là thư viện Boost chính thức!

tài liệu này là có sẵn ở đây: http://www.boost.org/doc/libs/1_64_0/doc/html/process.html


Đối với hồ sơ, các nguồn mà đã được xem xét từ 27 tháng 10 năm 2016 thông qua 05 tháng 11 năm 2016 có sẵn trên GitHub:

tải: https://github.com/klemens-morgenstern/boost-process

hướng dẫn sử dụng: http://klemens-morgenstern.github.io/process/index.html


Bạn có thể tìm thấy trên web một số phiên bản cũ của thư viện này. Họ đều là nhiều hay ít không tương thích:

  • Version 0.5 (mới nhất, như của DEC 3rd 2012)

tải: http://www.highscore.de/boost/process0.5/process.zip

dẫn sử dụng: http://www.highscore.de/boost/process0.5/index.html

  • Version GSOC2010

tải: http://www.highscore.de/boost/gsoc2010/process.zip

dẫn sử dụng: http://www.highscore.de/boost/gsoc2010/

  • Version 0,31

tải: http://www.highscore.de/boost/process.zip

manual1: http://www.highscore.de/boost/process/

manual2: http://www.highscore.de/cpp/process/

Tôi nghĩ rằng đó là giống như trong http://svn.boost.org/svn/boost/sandbox/process/boost/

  • I.S. Phiên bản 0.1-0.4

tải: https://github.com/boost-vault/Process

  • Version 0?

tải: http://www.netbsd.org/~jmmv/process.zip

dẫn sử dụng: http://www.netbsd.org/~jmmv/process/

Có phiên bản khác trông giống như các chi nhánh: https://github.com/JeffFlinn/boost-processhttps://github.com/boost-vault/Process.

Đối với một lịch sử một phần của dự án, nhìn vào http://www.highscore.de/cpp/process/#introduction

2

Đối với tháng 7 năm 2015 nó có vẻ như Boost.Process đã scheduled cho việc xem xét chính thức Boost một lần nữa.