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 只能在具有公共祖先的程序之間使用。乙個管道由乙個程序建立,然後該...