程序間的通訊(1)

2021-07-29 09:44:35 字數 759 閱讀 8246

根據程序間通訊資訊量的不同,劃分為兩個類別:控制資訊的通訊(低階通訊)和大批量資料資訊的通訊(高階通訊)。

常見的通訊介面有:用於實現低階通訊的有軟中斷訊號、訊號量集,實現高階通訊的有管道、訊息佇列、共享記憶體等。

軟中斷訊號: 

是作業系統用來通知程序有事件發生的一種訊號機制,用於實現簡單的非同步通訊的一些資訊,函式定義在signal.h中

常見訊號型別的定義:

其中,預置函式signal()的呼叫格式為signal(sig,function) //說明:sig為軟中斷訊號的序號或版本,function是中斷過程中相關聯的函式。

軟中斷訊號函式kill(pid,sig)//說明:

管道訊號: 乙個程序寫檔案,乙個程序從檔案中讀

為了協調雙方通訊,必須具備以下的三個條件:

1.互斥:乙個程序正在對pipe進行讀/寫操作時,另外乙個程序必須等待

2.同步:當寫(輸入)程序把一定數量(如4kb)資料寫入pipe後,便去睡眠等待,直到讀(輸出)程序取走資料後,再把它喚醒;

當讀(輸出)程序讀到一空pipe時,也應睡眠等待,直至寫程序將資料寫入管道後,才將它喚醒。

3.只有確定對方已存在時,才能進行通訊 



程序間通訊1

管道由於傳遞資料只能單向傳遞,因此又稱半雙工管道,它是一種兩個程序間進行單向通訊的機制 侷限性 資料只能由乙個程序流向另乙個程序,若要進行全雙工通訊,則需建立兩個管道 管道只能用於具有親緣關係的程序間通訊 管道無名字 管道的緩衝區大小受限制 管道所傳遞的是無格式的位元組流,這就要求管道的輸入和輸出事...

程序間通訊1

管道通訊 管道是單向 先進先出的,他把乙個程序的輸出和另乙個程序的輸入連在一起。兩個程式之間傳遞資料的一種簡單方法是使用popen和pclose。include file popen const char command,const char type int pclose file stream ...

程序間通訊(1) 管道

linux下一切皆檔案,我們可以建立乙個管道檔案進行通訊,實際上是呼叫pipe函式在核心中開闢一塊緩衝區 稱為管道 用於通訊,管道是一種最基本的ipc機制,由pipe函式建立 include int pipe int filedes 2 它有乙個讀端乙個寫端,然後通過filedes引數傳出給使用者程...