假設我們有兩個程序,A
和B
。 B
連續打印某物並讀取輸入。 (可能也有使用相同的I/O,我不知道這是否是可以或不可以在B
兩個過程...)讀取和寫入進程I/O?
A
要讀B
的輸出,並決定什麼該說B
,然後發送一個字符串到B
的輸入。 (就像有人通過鍵盤輸入文字到B
)。
我知道B
使用std::cout
發送消息到輸出並使用std::cin
作爲讀取輸入。
如何使用C++和標準庫編寫A
?這與套接字或ipc有關嗎?
注意:我正在使用i386 Linux系統。
假設我們有兩個程序,A
和B
。 B
連續打印某物並讀取輸入。 (可能也有使用相同的I/O,我不知道這是否是可以或不可以在B
兩個過程...)讀取和寫入進程I/O?
A
要讀B
的輸出,並決定什麼該說B
,然後發送一個字符串到B
的輸入。 (就像有人通過鍵盤輸入文字到B
)。
我知道B
使用std::cout
發送消息到輸出並使用std::cin
作爲讀取輸入。
如何使用C++和標準庫編寫A
?這與套接字或ipc有關嗎?
注意:我正在使用i386 Linux系統。
您可以使用非官方的boost Process圖書館,該圖書館的excellent tutorial正是您想要做的事情,並且現在任何時候都必然是提升的官方部分。它自然也是跨平臺的。 HTH
謝謝,但我只能使用C++標準庫:-( – 2011-02-27 20:47:01
@Sorush:你不能只使用C++標準庫,因爲進程間通信不是C++的一部分,無論如何你必須使用OS API,boost程序庫已經方便地包裝成漂亮的C++了 – 2011-02-27 21:10:29
那麼我現在應該怎麼做?我可以使用std編寫我自己的ipc機制嗎? – 2011-02-28 07:13:43
這是IPC並且依賴於操作系統。你在爲什麼開發平臺? – RageD 2011-02-27 20:39:51
@ RageD:我在Linux上(Ubuntu 10.10)。 – 2011-02-27 20:40:28
標記爲重要的操作系統信息。 – dmckee 2011-02-27 22:01:19