2013-07-17 53 views
1

在進程間通信(IPC)中,與每個進程進行通信應該需要OS提供的「PIPE」。並且要將輸入單元的數據傳送到程序或從程序傳送到操作系統提供的輸出單元「流」。流和管道之間的區別是什麼C

這是我的問題。

  1. PIPE和Stream之間是否存在差異?
  2. 如果它們不同,因爲它們的功能非常相似,使用「PIPE」或「Stream」傳輸數據是否更有用?

回答

1

管道是兩個進程之間的通信通道。它有一個寫作結束和一個閱讀結束。當這兩端開放時,會有一個(寫入或讀取)流。所以在第一個近似值中,管道的每一端都有一個流。

因此,要建立一個IPC,你應該

  • 創建使用功能pipe的管道。這返回兩個int確定管道的兩端;
  • 通常分叉得到兩個進程;
  • 打開管道的每一端(通常在分叉後在不同的過程中)並獲得兩個對應的流。

請參閱http://www.gnu.org/software/libc/manual/html_node/Creating-a-Pipe.html

相關問題