一.linux 程序間通訊方式
(1)管道(pipe)及有名管道(named pipe):管道可用於具有親緣關係程序間的通訊,有名管道,除具有管道所具有的功能外,它還允許無親緣關係程序間的通訊。
(2)訊號(signal):訊號是在軟體層次上對中斷機制的一種模擬,它是比較複雜的通訊方式,用於通知程序有某事件發生,乙個程序收到乙個訊號與處理器收到乙個中斷請求效果上可以說是一樣的。
(3)訊息佇列(messge queue):訊息佇列是訊息的鏈結表,包括 posix 訊息佇列 systemv 訊息佇列。它克服了前兩種通訊方式中資訊量有限的缺點,具有寫許可權的程序可以按照一定的規則向訊息佇列中新增新訊息;對訊息佇列有讀許可權的程序則可以從訊息佇列中讀取訊息。
(4)共享記憶體(shared memory):可以說這是最有用的程序間通訊方式。它使得多個程序可以訪問同一塊記憶體空間,不同程序可以及時看到對方程序中對共享記憶體中資料的更新。這種通訊方式需要依靠某種同步機制,如互斥鎖和訊號量等。
(5)訊號量(semaphore):主要作為程序之間以及同一程序的不同執行緒之間的同步和互斥手段。
(6)套接字(socket):這是一種更為一般的程序間通訊機制,它可用於網路中不同機器之間的程序間通訊,應用非常廣泛。
二.管道
1.特點
①它只能用於具有親緣關係的程序之間的通訊(也就是父子程序或者兄弟程序之間)。
②它是乙個半雙工的通訊模式,具有固定的讀端和寫端。
③ 管道也可以看成是一種特殊的檔案,對於它的讀寫也可以使用普通的 read()和 write()等函式。但是它不是普通的檔案,並不屬於其他任何檔案系統,並且只存在於核心的記憶體空間中。
2.管道建立函式
pipe()函式語法
| |
| -------- | :----------------
第六周嵌入式課堂總結
嵌入式linux安裝與使用!嵌入式linux開發工具 gcc make shell 嵌入式linux系統開發 通過核心提供的服務實現相應功能 c語言程式設計 無os語法 嵌入式linux c開發 會看使用說明書 linux系統構成 使用者空間 核心空間 使用者空間不能隨便訪問核心空間 用系統呼叫訪問...
第六周程式設計總結
includeint main 第一步 定義變數 第二步 輸入變數 第三步 呼叫for語句 第四步 累加求和 第五步 輸出答案 問題 計算的答案錯誤 解決方法 累加求和時將1更改為1.0 第一步 定義變數 第二步 輸入實數 第三步 呼叫for語句 第四步 累加求和 第五步 輸出答案 問題 分式的分母...
第六周程式設計總結
這個作業屬於哪個課程 c語言程式設計ll 這個作業要求在 我在這個課程的目標是 理解變數 記憶體單元和位址之間的關係,掌握指標變數的基本運算 這個作業在哪個具體方面幫助我實現目標 讓我大概了解了指標的定義及用法 參考文獻 函式fun的功能是 求兩數平方根之和,作為函式值返回。例如 輸入12和20,輸...