無名管道和命名管道的異同點

【無名管道】特點:

1、只能用於具有親緣關係的進程之間通信(父子進程或者兄弟進程)。

2、是一個單工(半雙工)的通信模式,具有固定的讀寫端。

3、每次使用都需要創建管道對象。

【有名管道】特點:

1、可以在互不相關的進程之間實現通信。

2、改管道是通過路徑名來指出,在文件系統中是可以看到的,在建立管道後可以當做普通文件來使用讀寫操作。

3、嚴格遵循先進先出的規則,對管道及FIFO的讀總是從開始處返回數據,對它們的寫則把數據添加到末尾。且不支持如lseek()等文件定位操作。

相同點:

1.默認都是阻塞性讀寫   2.都是用於socket的網絡通信

不同點:

1.打開方式不一致

2.pipe通過fcntl系統調用來設置O_NOBLOCK來設置非阻塞讀寫

3.FIFO通過cntl系統調用或open函數來設置非阻塞性讀寫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章