程式間通訊(linux程式與執行緒學習筆記)
程式間通訊介紹
早期UNIX程式間通訊方式
無名訊號(pipe)
有名管道(fifo)
訊號(signal)
System V IPC
共享記憶體(share memory)
訊息佇列(message queue)
訊號燈集(semaphore set)
套接字(socket)
無名管道特點
無名管道具有以下特點:
只能用於具有親緣關係的程式之間的通訊
單工的通訊模式,具有固定的讀端和寫端
無名管道建立時會返回兩個檔案描述符,分別用於讀寫管道
無名管道建立 - pipe
#include<unistd.h>
int pipe(int pdf[2]);
成功時返回0,失敗時返回EOF
pdf 包含兩個元素的整形陣列,用來儲存檔案描述符
pdf[0]用於讀管道,pdf[1]用於寫管道
讀無名管道
寫端存在(至少有一個程式可以通過無名管道寫資料)
有資料 read返回實際讀取的位元組數
無資料 程式讀阻塞
寫端不存在
有資料 read返回實際讀取的位元組數
無資料 read返回0
寫無名管道
讀端存在(至少有一個程式可以通過檔案描述符讀取管道內容)
有空間 write返回實際寫入位元組數
無空間 程式寫阻塞
讀端不存在
有空間 管道斷裂!
無空間 管道斷裂!
相關文章
- Linux程式執行緒學習筆記:程式間通訊 之 管道Linux執行緒筆記
- Linux程式執行緒學習筆記Linux執行緒筆記
- Adnroid原始碼學習筆記:Handler 執行緒間通訊原始碼筆記執行緒
- 共享記憶體對映(linux程式與執行緒學習筆記)記憶體Linux執行緒筆記
- android程式與執行緒詳解四:執行緒安全和程式間通訊Android執行緒
- 程式通訊 執行緒通訊執行緒
- 3|程式間通訊--有名管道學習筆記筆記
- OS學習筆記二: 程式執行緒模型筆記執行緒模型
- 《Java 多執行緒程式設計核心技術》筆記——第3章 執行緒間通訊(三)Java執行緒程式設計筆記
- 《Java 多執行緒程式設計核心技術》筆記——第3章 執行緒間通訊(四)Java執行緒程式設計筆記
- Java多執行緒學習(3)執行緒同步與執行緒通訊Java執行緒
- Java多執行緒學習——執行緒通訊Java執行緒
- RT-Thread學習筆記3-執行緒間通訊 & 定時器thread筆記執行緒定時器
- Android程式間通訊(複習筆記)Android筆記
- 執行緒4--執行緒間通訊執行緒
- Java多執行緒學習(五)執行緒間通訊知識點補充Java執行緒
- 執行緒間的通訊執行緒
- iOS執行緒學習筆記iOS執行緒筆記
- 多執行緒學習筆記執行緒筆記
- Java併發程式設計學習筆記----執行緒池Java程式設計筆記執行緒
- linux程式和執行緒之間通訊方法和同步方法總結Linux執行緒
- “React元件間通訊”學習筆記React元件筆記
- Android執行緒間通訊Android執行緒
- java多執行緒5:執行緒間的通訊Java執行緒
- 多執行緒之間通訊及執行緒池執行緒
- 多執行緒Demo學習(執行緒的同步,簡單的執行緒通訊)執行緒
- Java 多執行緒學習筆記Java執行緒筆記
- java學習筆記--多執行緒Java筆記執行緒
- Java學習筆記之執行緒Java筆記執行緒
- 多執行緒學習筆記 (轉)執行緒筆記
- 程式和執行緒有什麼區別?(Process and Threads)程式之間和執行緒之間是如何通訊的?執行緒thread
- 執行緒與程式之間有什麼關係?Linux執行緒與程式有什麼區別?執行緒Linux
- 【學習筆記】OpenMV與arduino通訊筆記UI
- Java 多執行緒學習筆記(三)-守護執行緒Java執行緒筆記
- Java併發程式設計之執行緒安全、執行緒通訊Java程式設計執行緒
- 阿里Android開發規範:程式、執行緒與訊息通訊阿里Android執行緒
- 說說Java執行緒間通訊Java執行緒
- JUC之執行緒間的通訊執行緒