Software engineering notes

Linux mkfifo

介紹

用在兩個不同執行的程式溝通, 他就像是一條水管(pipeline file)將兩個程式連接起來

其中一邊不斷的將水倒進去, 另一邊則取水, 這樣就可以達到資料

Example

session 1 :

建立 pipe

cd /tmp
mkfifo test

傳送資料進去

echo "Hello Jex" > test
echo "line 1" > test&

在命令的最後面加上 & 可以讓它背景作業

session 2 :

將 session 1 存的資料拿出來

cd /tmp
cat test

fifo (命名通道)

這些參數似乎要用 C 寫才能使用

讀 :

寫 :

打開檔案預設是 block

mkfifo 與 fifo 的差異

mkfifo 由 pipe 函數建立並打開, fifo 由 mkfifo 函數建立, 打開用 open

差別只在建立與開啟的方式不同, 一旦完成這些, 在通道 I/O 及 FIFO 幾乎一樣

ref :