天天看點

《UNIX網絡程式設計 卷2:程序間通信(第2版)》——1.4 名字空間

本節書摘來自異步社群《unix網絡程式設計 卷2:程序間通信(第2版)》一書中的第1章,第1.4節,作者:【美】w. richard stevens著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

當兩個或多個無親緣關系的程序使用某種類型的ipc對象來彼此交換資訊時,該ipc對象必須有一個某種形式的名字(name)或辨別符(identifier),這樣其中一個程序(往往是伺服器)可以建立該ipc對象,其餘程序則可以指定同一個ipc對象。

管道沒有名字(是以不能用于無親緣關系的程序間),但是fifo有一個在檔案系統中的unix路徑名作為其辨別符(是以可用于無親緣關系的程序間)。在以後各章具體講述其他形式的ipc時,我們将使用另外的命名約定。對于一種給定的ipc類型,其可能的名字的集合稱為它的名字空間(name space)。名字空間非常重要,因為對于除普通管道以外的所有形式的ipc來說,名字是客戶與伺服器彼此連接配接以交換消息的手段。

圖1-4彙總了不同形式的ipc所用的命名約定。

《UNIX網絡程式設計 卷2:程式間通信(第2版)》——1.4 名字空間

我們還指出哪些形式的ipc是由1996年版的posix.1和unix 98标準化的,這兩個标準本身則在1.7節詳細讨論。為了比較的目的,我們還包含了3種類型的套接字,它們在unpv1中具體講述。注意套接字api(應用程式程式設計接口)是由posix工作組标準化的,最終應該成為某個未來的posix.1标準的一部分。

盡管posix.1标準化了信号量,它們仍然是可選的特性。圖1-5彙總了posix.1和unix 98對各種ipc特性的說明。每種特性有強制、未定義和可選三種選擇。對于可選的特性,我們指出了其中每種特性受支援時(通常在頭檔案中)定義的常值的名字,例如_posix_threads。注意,unix 98是posix.1的超集。

《UNIX網絡程式設計 卷2:程式間通信(第2版)》——1.4 名字空間

繼續閱讀