命名管道的使用

2021-03-31 12:16:36 字數 974 閱讀 1281

我在工作中碰到了乙個這樣的問題,有兩個程式,第乙個程式會fork乙個程序exec呼叫第二個程式,這樣呼叫後,第乙個程式還是繼續執行父程序的。我要求第乙個程式的父程序停止執行,直到第二個程式退出或執行到某個時候才繼續執行。

下面是兩個例子程式的**

先執行gui程式,再執行player程式

./gui&在後台執行

./player

/*gui.c*/

#include

#include

#include

#include

#include

#define fifo_server "./fifoserver"

int main()

printf("gui:open namepipe .../n");

//=open(fifo_server,o_wronly|o_nonblock,0);

fd=open(fifo_server,o_rdwr,0);

//fd=open(fifo_server,o_rdonly,0);

if(fd==-1)

printf("gui:wait namepipe write.../n");

read(fd,(char *)(&buf),1); //程式會在這裡停止,直到執行player程式

printf("gui:player finished!/n");

unlink(fifo_server); }

/*player.c*/

#include

#include

#include

#include

#include

#define fifo_server "./fifoserver"

int main()

write(fd,(char *)"over",5);//資料寫入命名管道後,gui繼續執行

close(fd); }

mysql使用命名管道 命名管道

管道是用於相關過程之間的通訊。我們是否可以使用管道進行不相關的程序通訊,比方說,我們要從乙個終端執行客戶端程式,從另乙個終端執行伺服器程式?答案是否定的。那麼怎樣才能實現不相關的程序通訊,簡單的答案就是使用 命名管道。即使這適用於相關的程序,但是使用命名管道進行相關的程序通訊沒有任何意義。我們使用乙...

命名管道的簡單使用

華清遠見嵌入式學院 講師。區別於無名管道,命名管道可以用於沒有親緣關係的程序之間進行通訊,且命名管道在一些特點上更類似於檔案,其具有檔名,檔案屬性及存放路徑等資訊,也就是說利用命名管道進行操作後,我們可以在相應的路徑下查詢到它,更方便程式設計的需要和操作,且命名管道嚴格地遵循先進先出原則。命名管道在...

命名管道的簡單使用

華清遠見嵌入式學院 講師。區別於無名管道,命名管道可以用於沒有親緣關係的程序之間進行通訊,且命名管道在一些特點上更類似於檔案,其具有檔名,檔案屬性及存放路徑等資訊,也就是說利用命名管道進行操作後,我們可以在相應的路徑下查詢到它,更方便程式設計的需要和操作,且命名管道嚴格地遵循先進先出原則。命名管道在...