ipc(inter-process communication):管道、訊號、共享記憶體、訊息佇列、資訊量、套接字
管道分為:無名(匿名)管道和有名(命名)管道
區別:
缺點:侷限於父子程序間的通訊且會發生阻塞(fcntl)
步驟建立:pipe
函式原型:
int pipe(int filedes[2]);
引數解析:filedes[0]-讀取埠 filedes[1]-寫入埠
返回值:成功->返回0;失敗->返回-1;
基本使用框架
#include
#include
#include
#include
intmain()
else
printf
("pipe create success\n");
close
(pipe_fd[0]
);close
(pipe_fd[1]);}
建立:mkfifo
函式原型:
int mkfifo(const char *filename,mode_t mode)
引數解析:filename-有名管道的名稱,mode-有名管道的開啟方式 (o_nonblcok(分阻塞方式)開啟fifo檔案)
返回值:成功->0;失敗->-1
Linux程序間通訊(IPC)之一 管道
管道是unix系統ipc的最古老的形式,並且所有的unix系統都提供這種通訊機制,當然也包括linux。這樣利用管道進行ipc管道具有如下限制 1 歷史原因造成管道是半雙工的,資料只能單向流動。如果想雙向通訊,必須要建立兩個管道。2 管道通訊雙方必須有親緣關係的程序之間 父子程序或者兄弟程序之間 2...
Linux程序間通訊(IPC)之一 管道
管道是unix系統ipc的最古老的形式,並且所有的unix系統都提供這種通訊機制,當然也包括linux。這樣利用管道進行ipc管道具有如下限制 1 歷史原因造成管道是半雙工的,資料只能單向流動。如果想雙向通訊,必須要建立兩個管道。2 管道通訊雙方必須有親緣關係的程序之間 父子程序或者兄弟程序之間 2...
程序間通訊(一) 管道
一,用管道進行父子程序通訊 include include define maxline 120 define msginfo hurry up n int main void pid t pid if pipe fd 0 if pid fork 0 if pid 0 father write st...