linux C命名管道

2021-10-23 12:31:44 字數 1293 閱讀 6224

#include

#include

#include

#include

#include

#include

#include

#include

/* 命名管道:在系統中以特殊檔案形式存在,不同於匿名管道,是全雙工管道,發生在無親緣關係的程序間通訊

使用mkfifo建立命名管道,以open函式開啟命名管道檔案向管道中進行寫或讀資料;

預設是阻塞的

1.mkfifo():建立命名管道

2.open():開啟管道

3.read/write:從管道檔案描述符中讀取、寫入資料

*//* 寫程序 */

intmain()

else

} fp =

open

("myfifo"

, o_wronly);if

(fp <0)

while(1

)if(memcmp

(buff,

"exit",4

)==0)

write_nm =

write

(fp, buff, read_nm);}

return0;

}

#include

#include

#include

#include

#include

#include

#include

#include

/* 命名管道:在系統中以特殊檔案形式存在,不同於匿名管道,是全雙工管道,發生在無親緣關係的程序間通訊

使用mkfifo建立命名管道,以open函式開啟命名管道檔案向管道中進行寫或讀資料;

預設是阻塞的

1.mkfifo():建立命名管道

2.open():開啟管道

3.read/write:從管道檔案描述符中讀取、寫入資料

*//* 讀程序 */

intmain()

else

} fp =

open

("myfifo"

, o_rdonly);if

(fp <0)

while(1

)if(memcmp

(buff,

"exit",4

)==0)

printf

("read buff:%s\n"

, buff);}

return0;

}

Linux C命名管道實現程序間通訊

命名管道 命名管道也被稱為fifo檔案,它是一種特殊型別的檔案,它在檔案系統中以檔名的形式存在,但是它的行為卻和之前所講的沒有名字的管道 匿名管道 類似。建立命名管道 以下兩個函式都可以用來建立命名管道 任選乙個 函式原型如下 include include int mkfifo const cha...

linux C 有名管道

匿名管道呢,只能使用在有親緣關係的程序之間,比如父子程序個兄弟程序,等等,因為匿名管道是乙個在記憶體中存在的檔案,其位址描述符只是在父子程序之中才有體現,為了克服該缺點,就有了命名管道的實現,命名管道呢,實際上就是乙個在檔案系統中儲存的檔案,命名管道是乙個裝置檔案,同時,該管道檔案也是fifo fi...

linux C 匿名管道

匿名管道 1 在父子程序之間進行通訊 2 它是乙個半雙工的通訊模式,具有固定的讀端和寫端 3 管道也可以看成是一種特殊的檔案,對於它的讀寫也可以使用普通的read write等函式。但是它不是普通的檔案,並不屬於其他任何檔案系統,並且只存在於記憶體中。函式 int pipe int fd 2 傳入引...