我在工作中碰到了乙個這樣的問題,有兩個程式,第乙個程式會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使用命名管道 命名管道
管道是用於相關過程之間的通訊。我們是否可以使用管道進行不相關的程序通訊,比方說,我們要從乙個終端執行客戶端程式,從另乙個終端執行伺服器程式?答案是否定的。那麼怎樣才能實現不相關的程序通訊,簡單的答案就是使用 命名管道。即使這適用於相關的程序,但是使用命名管道進行相關的程序通訊沒有任何意義。我們使用乙...
命名管道的簡單使用
華清遠見嵌入式學院 講師。區別於無名管道,命名管道可以用於沒有親緣關係的程序之間進行通訊,且命名管道在一些特點上更類似於檔案,其具有檔名,檔案屬性及存放路徑等資訊,也就是說利用命名管道進行操作後,我們可以在相應的路徑下查詢到它,更方便程式設計的需要和操作,且命名管道嚴格地遵循先進先出原則。命名管道在...
命名管道的簡單使用
華清遠見嵌入式學院 講師。區別於無名管道,命名管道可以用於沒有親緣關係的程序之間進行通訊,且命名管道在一些特點上更類似於檔案,其具有檔名,檔案屬性及存放路徑等資訊,也就是說利用命名管道進行操作後,我們可以在相應的路徑下查詢到它,更方便程式設計的需要和操作,且命名管道嚴格地遵循先進先出原則。命名管道在...