天天看點

《UNIX網絡程式設計 卷2:程序間通信(第2版)》——1.5 fork、exec和exit對IPC對象的影響

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

我們需要了解fork、exec和_exit函數對于所讨論的各種形式的ipc的影響(_exit是由exit調用的一個函數)。圖1-6對此作了總結。

《UNIX網絡程式設計 卷2:程式間通信(第2版)》——1.5 fork、exec和exit對IPC對象的影響

表中多數特性将在以後的章節中講述,不過我們需要強調幾點。首先,考慮到無名同步變量(互斥鎖、條件變量、讀寫鎖、基于記憶體的信号量),從一個具有多個線程的程序中調用fork将變得混亂不堪。[butenhof 1997]的6.1節提供了其中的細節。我們在表中隻是簡單地注明:如果這些變量駐留在共享記憶體區中,而且建立時設定了程序間共享屬性,那麼對于能通路該共享記憶體區的任意程序來說,其任意線程能繼續通路這些變量。其次,system v ipc的三種形式沒有打開或關閉的說法。我們将從圖6-8和習題11.1和習題14.1中看出,通路這三種形式的ipc所需知道的隻是一個辨別符,是以知道該辨別符的任何程序都能通路它們,盡管信号量和共享記憶體區可附帶提出某種特殊處理要求。