有名管道 ====》有名稱的管道 ===》fifo ====》在檔案系統中可見檔案
具備基本的管道所有特性:
具有有名管道自有的特性:
1、檔案系統可見
2、檔案讀寫方式調整;
3、有名管道檔案可以單獨建立;
使用框架:
建立有名管道 =》開啟有名管道》讀寫有名管道 ==》關閉有名管道 ==》解除安裝有名管道
1、建立有名管道:
#include
#include
int mkfifo(const char *pathname, mode_t mode);
功能:該函式可以在指定路徑下建立指定許可權的有名管道檔案。
引數:pathname 要建立的有名管道路徑+名稱;
mode 要建立的管道檔案的許可權;
返回值:成功 0
失敗 -1;
2、開啟有名管道:open
int open(const char *pathname, int flags);
功能:使用該函式開啟乙個已經建立好的有名管道;
引數: pathname 管道名稱+路徑
flags o_rdonly 唯讀方式開啟管道
o_wronly 只寫方式開啟管道
返回值:成功 如果以唯讀方式開啟,則返回值為管道讀端
如果以只寫方式開啟,則返回值為管道寫端
失敗 -1;
注意:由於管道必須保證讀寫端同步,如果一端不存在,
則另一端在該函式位置會阻塞等待。
3、管道的讀寫: 檔案io的read 和 write
讀: ssize_t read(int fd, void *buf, size_t count);
寫: ssize_t write(int fd, const void *buf, size_t count);
4、有名管道的關閉: close() ;
5、解除安裝有名管道: unlink();
int unlink(const char *pathname);
功能:解除安裝執行路徑下的有名管道檔案,即刪除管道檔案;
引數: pathname 要解除安裝的目標管道檔案
返回值:成功 0
失敗 -1;
//有名管道寫操作
#include
#include
#include
#include
#include
#include
#define n 32
intmain()
else
}else
char buf[n]=""
;while(1
)}return0;
}
//有名管道讀操作
#include
#include
#include
#include
#include
#include
#define n 32
intmain()
else
}else
char buf[n]=""
;while(1
)}return0;
}
Linux學習筆記(程序間通訊)
ipc 程序間通訊 linux下的多個程序間的通訊機制叫做ipc,它是多個程序之間進行相互溝通的一種方法。通過程序間通訊可以實現不同程序之間傳播和交換資訊。程序間通訊的目的 1.資料傳輸 2.資源共享 3.乙個程序需要向另乙個或一組程序傳送訊息,通知它或它們發生了某種事件 4.程序控制 程序間通訊的...
Linux程序間通訊 IPC 學習筆記。
ipc interprocess communication 程序間通訊 一 管道 1.無名管道 開啟與關閉管道 include int pipe int filedes 2 filedes 0 用於讀出資料,讀取時必須關閉寫入端,即close filedes 1 filedes 1 用於寫入資料,...
linux學習 程序間通訊之管道
在linux系統中,程序間通訊主要有以下幾種方式,這一期及以後的博文中將對各種程序間通訊進行介紹。1 管道 2 命名管道 3 訊號 4 訊號量 5 訊息佇列 6 共享記憶體 7 套接字 在本文中,將對管道進行說明。一 管道 管道是unix ipc的最老形式,並且所有u n i x系統都提供此種通訊機...