Linux中的程序通訊之pipe

2021-09-12 12:56:28 字數 1281 閱讀 2507

linux中的程序通訊方式有很多種,首先來介紹一下管道。管道的特點是只能用在有「親緣」關係的父子程序之間。

管道的建立:

#include#includeint fd[2];

int ret = pipe(fd);

if(ret == -1)

父子程序之間的簡單通訊,父程序傳送一句話給子程序:

從結果可以看出,父程序中的乙個字串,通過管道送到了子程序,並且子程序列印了接收到的字串。

這可以說是乙個管道的最基本的例子,裡面用到了pipe(),close(),read(),write()應該熟練掌握。

分析執行的結果:父程序先write再read,子程序先read再write,才能得到預計的效果。如果兩個順序一樣的話,執行就出了問題?

隨著學習的過程會逐漸補充blog。

Linux之程序通訊

一 共享記憶體 系統呼叫 shmget 當shmget 建立了一塊新的共享記憶體後,返回乙個可以用於引用該共享記憶體的shmid ds資料結構的識別符號。原型 int shmget key t key,int size,int shm 返回值 如果成功,返回共享記憶體段識別符號。如果失敗,則返回 1...

linux 程序間的通訊之管道通訊

通過建立命名管道實現任何乙個程序的通訊 mkfifo read.c 1 include2 include 3 include4 include5 6 include7 include8 9 define fifo text 1011 int main int argc,char argv 1223 ...

linux程序通訊之管道

管道 可分為普通管道和命名管道。普通管道用於有親緣關係的程序間的通訊 父子程序 命名管道,通過給管道命名的方式,使得管道變成檔案系統中的管道檔案,從而允許無親緣關係的程序間通過訪問管道檔案進行通訊。管道是單向的,一端只能用於輸入,另一端只能用於輸出。管道是fifo的,即先進先出的,向管道中寫入的資料...