程序間通訊 管道

2021-09-27 02:36:16 字數 819 閱讀 7157

1.管道

2.訊號量

3.共享記憶體

4.訊息佇列

5.套接字

有名管道

無名管道

1 mkfifo fifo //有名管道(唯讀/只寫方式開啟,沒有讀寫方式)

2 //管道檔案大小始終為0

3 從記憶體讀取

4 不從磁碟讀取/儲存資料

5 不是全雙工通訊(半雙工通訊) 單工

6 必須兩個程序同時使用不同的方式開啟乙個管道才能正常執行

7 否則保持在開啟處阻塞

8 乙個程序 標準輸入 標準輸出 錯誤 前面三個都被占用

9 write關閉 read 返回0

10 -1 失敗

1112 read關閉 write產生異常並退出 系統發訊號 不能向關閉的管道寫資料(sigpipe訊號)

13 管道為空 read會阻塞

14 管道為滿 write會阻塞

1516

17 管道就是兩個指標 乙個頭 乙個尾 碰到一起就是讀完了/或者寫滿了

18 乙個圈 前面的在寫後面的在讀 迴圈佇列

19 全在記憶體中

2021 ulimit -a 對當前使用者的限制

22 ulimit -a標識 大小 更改方法

23 只在當前終端中有效

2425 有名管道和無名管道的區別

26 有名可以在任意兩個程序中通訊 open同乙個

27 無名管道可以在有親屬關係的程序中使用

28 無名管道

29 pipe fd0讀的描述符 fd1的寫的描述符

3031

32 無名管道~~

~

程序間通訊 管道

include int pipe int fd 2 返回值 若成功,返回0,若出錯,返回 1經由引數fd返回兩個檔案描述符 fd 0 為讀而開啟,fd 1 為寫而開啟。fd 1 的輸出是fd 0 的輸入。else if pid 0 子程序 else else if pid 0 父程序 printf ...

程序間通訊 管道

原文 程序間通訊 管道 管道簡介 常說的管道都是匿名半雙工管道,匿名半雙工管道在系統中是沒有實名的,並不可以在檔案系統中以任何方式看到該管道。它只是程序的一種資源,會隨著程序的結束而被系統清除。管道通訊是在unix系統中應用比較頻繁的一種方式,例如使用grep查詢 ls grep ipc 顧名思義,...

程序間通訊 管道

程序間通訊,又稱為ipc,包含以下型別 半雙工管道fifo 全雙工管道 訊息佇列 訊號 訊號量共享記憶體 套接字socket streams。一,管道是unix系統ipc的最古老形式,他具有兩種侷限性 1 資料只能在乙個方向上流動 2 只能在具有公共祖先的程序之間使用。乙個管道由乙個程序建立,然後該...