Linux 網路程式設計筆記(3) 程序間通訊

2021-08-01 22:05:44 字數 502 閱讀 5693

資料傳輸

資源共享

通知時間。

程序控制。乙個程序完全控制另乙個程序的執行,如攔截另乙個程序的所有陷入和異常,並能夠幾時知道它的狀態改變。

檔案檔案鎖

管道(pipe)和有名管道(fifo)

訊號訊息佇列

共享記憶體

訊號量互斥量

條件變數

讀寫鎖套接字

共享檔案系統

共享核心中的資訊

共享記憶體區

隨程序持續。一直存在直到開啟的最後乙個程序結束。(如pipe和fifo)

隨核心持續。一直存在直到核心自舉或顯式刪除(如system v 訊息佇列、共享記憶體、訊號量)

隨檔案系統持續。一直存在直到顯式刪除,即使核心自舉還存在。(posix訊息佇列、共享記憶體、訊號量如果是對映檔案來實現)。

Linux程式設計筆記 程序間通訊

二 程序間通訊 1.管道 管道用於相關的程序 特別是父子程序的 間的通訊。使用 read 和write 進行讀寫操作。include intpipe int file descriptor 2 建立管道 file desciptor 0 為讀取端,file desciptor 1 為寫入端。例程 i...

Linux程序間通訊程式設計

3.訊息佇列 訊息佇列就是乙個訊息的鍊錶.可以把訊息看作乙個記錄,具有特定的格式 程序可以向中按照一定的規則新增新訊息 另一些程序則可以從訊息佇列中讀走訊息 優點 比訊號傳送的資訊量多 能傳送有格式的位元組流 目前主要有兩種型別的訊息佇列 1.系統 v訊息佇列是隨核心持續的,只有在核心重起或者人工刪...

Linux網路程式設計(3) 多程序 多執行緒

在我的 多程序 這裡多程序採用傳統的多程序模型。每當有client發來的連線時建立乙個程序來處理連線,乙個子程序相應乙個連線。有了上篇單一程序的基礎,此處僅僅做簡單的改動便能夠實現。while 1 close clientfd 僅僅須要在while裡面加入程序的建立就可以,然後在子程序裡先關閉父程序...