IPC程序間通訊 一 管道

2021-10-23 04:37:07 字數 702 閱讀 5924

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...