linux應用程式設計 程序間通訊 一 管道

2021-10-04 08:48:32 字數 4063 閱讀 4405

無名管道在父子程序間通訊例程

}6、popen 與 pclose

#include

#define max_shellcmd_databuffsize 4096

intmysystem

(char

*cmd,

char

*buff)if(

fread

(buff,

1, max_shellcmd_databuffsize, fp)==0

)err2:

pclose

(fp)

;err1:

return ret;

}char buf[max_shellcmd_databuffsize]

;int

main

(int argc,

char

**agrv)

#include

#include

/* @funcion 建立乙個管道檔案

* @param[in] pathname是乙個普通的路徑名,它是該fifo的名字。

* @param[in] mode引數指定檔案許可權位,與open的第三個引數mode相同。

* @return 成功 0,失敗 -1

*/int

mkfifo

(const

char

*pathname, mode_t mode)

;#include

/* @funcion 從檔案系統中刪除乙個管道檔案

* @param[in] pathname是乙個普通的路徑名,它是該fifo的名字。

* @return 成功 0,失敗 -1

非親緣程序間通訊

設定非阻塞的方式:

(1)呼叫open時可指定 o_nonblock標誌。例如writefd =open(fifo1, o_wronly i o_nonblock, 0);

(2)如果乙個描述符已經開啟,那麼可以呼叫fcnt1以啟用o_ nonblock標誌。

如果待寫的位元組數大於ppe_buf:

如果向乙個沒有為讀開啟著的管道或fifo寫入,那麼核心將產生乙個 sigpipe訊號:

Linux應用程式設計 程序通訊

通訊方式有管道pipe,訊號 一 pipe 管道分兩種無名管道,有名管道。1 無名管道 父程序和子程序可通過無名管道傳輸資料,管道有兩個口,一端寫一端讀,半雙工通訊。可以當作檔案進行操作,所以建立的管道會有兩個檔案描述符fds 0 和fds 1 fds 0 用於讀,fds 1 用於寫,關係如圖。實驗...

linux應用程式設計基礎 程序間通訊(IPC)

theme 程序間通訊 ipc author jeff.xue contact information contactmexkj 163.com 1.程序間通訊作用 2.通訊方式 3.管道通訊 1 管道 單向 先進先出 2 管道種類 3 無名管道 4 命名管道 fifo 不相干程序交換資訊 4.訊號...

Linux應用程式設計 09 程序間通訊 訊號通訊

訊號通訊 訊號是在軟體層次上對中斷機制的一種模擬,是一種非同步通訊方式訊號可以直接進行使用者空間程序和核心程序之間的互動,核心程序也可以利用它來通知使用者空間程序發生了哪些系統事件 如果該程序當前並未處於執行態,則該訊號就由核心儲存起來,直到該程序恢復執行再傳遞給它 如果乙個訊號被程序設定為阻塞,則...