Linux環境下管道FIFO傳輸

2021-06-29 00:36:48 字數 1000 閱讀 3181

本例用到3個檔案:建立管道、往管道裡寫資料、從管道裡讀資料。

fifo_write.c

#include #include #include #include #include #include #include #include #define bufes pipe_buf

int main(void)

for(i=0;i<100;i++)

if(write(fd,buf,100))

close(fd);

exit(0);

}

fifo_read.c

#include #include #include #include #include #include #include #include #define bufes pipe_buf

int main(void)

while((len=read(fd,buf, bufes))>0) /* 開始進行通訊 */

{for(j=0;j

fifo.sh

#!/bin/bash

file="/home/nb/test/fifo1"

if [ -p "$file" ];then

rm -rf fifo1

rm -rf 0666

fimkfifo fifo1 0666

echo "mkfifo fifo1 successful"

./fifo_write

echo "start fifo_write...."

執行順序:先建立管道,執行:./fifo.sh

然後寫資料:./fifo_write可以在後台也可以重新開終端讀資料。

最後:./fifo_read讀資料。

注意:fifo預設旗標為必須寫完之後才能讀。而且讀一次後fifo管道中清空,沒有資料。所以每次讀完後再讀管道中是沒有資料的(阻塞等待新的資料寫入)。

linux下管道命令

想必很多剛接觸linux尤其是在redhat環境下,大家都見過 rpm qa grep 或者rpm qa sort之類的命令,但是並不知道 是乙個什麼符號。管道符號,是unix功能強大的乙個地方,符號是一條豎線 用法 command 1 command 2 他的功能是把第乙個命令command 1執...

Linux下管道程式設計

功能 父程序建立乙個子程序父程序負責讀使用者終端輸入,並寫入管道 子程序從管道接收字元流寫入另乙個檔案 include include include include include include include define max 100 intmain pid fork 建立子程序 if p...

Linux 命名管道FIFO

管道的乙個不足之處是沒有名字,因此,只能用於具有親緣關係的程序間通訊,在命名管 道 named pipe或fifo 提出後,該限制得到了克服。fifo不同於管道之處在於它提供一 個路徑名與之關聯,以fifo的檔案形式儲存於檔案系統中。命名管道是乙個裝置檔案,因 此,即使程序與建立fifo的程序不存在...