天天看點

Linux 管道通訊程式設計整理

5.1建立無名管道

5.1.1 函數名

pipe

5.1.2 函數原形

int pipe(int pipefd[2])

5.1.3 函數功能

建立單向資料從傳輸的管道,用于程序間的通信

5.1.4 所屬頭檔案

<unistd.h>

5.1.5 傳回值

成功:傳回0  失敗:傳回:-1

5.1.6參數說明

pipefd[0]:指向讀端,存儲讀端檔案描述符fd

pipefd[1]:指向寫端,存儲寫端檔案描述符fd

5.1.7 注意

為了使父子程序通信,必須将pipe在程序建立fork之前建立,否則,父程序和子程序都各自建立一個管道pipe,互相獨立,是以達不到通信的目的

5.1.8 demo

Linux 管道通訊程式設計整理

5.2建立有名管道

5.2.1 函數名

mkfifo

5.2.2 函數原形

int mkfifo(const char *pathname,mode_t mode)

5.2.3 函數功能

建立一個fifo檔案(有名管道)

5.2.4 所屬頭檔案

<sys/types.h>  <sys/stat.h>

5.2.5 傳回值

成功:傳回0  失敗:傳回-1

5.2.6 參數說明

pathname:要建立的fifo檔案的名字(帶路徑)、

mode:建立的fifo檔案的通路權限 (見open,例:666)

Linux 管道通訊程式設計整理

5.3删除有名管道

5.3.1 函數名

unlink

5.3.2 函數原形

int unlink(const char *pathname)

5.3.3 函數功能

删除檔案

5.3.4 所屬頭檔案

<unistd.h>

5.3.5 傳回值

成功:放回0  失敗:傳回-1

5.3.6 參數說明

pathname:待删除檔案的名字(含路徑)

5.3.7 demo

Linux 管道通訊程式設計整理

一旦運作寫程序,那麼該程序處于阻塞的狀态,直到有程序讀取該fifo檔案

Linux 管道通訊程式設計整理

繼續閱讀