(一) 編寫乙個關於程序通訊的簡單程式,子程序送一串訊息給父程序,父程序收到訊息後把它顯示出來。 要求: 兩個子程序分別向管道寫一句話: child process 1 is sending a message! child process 2 is sending a message! 而父程序則從管道中讀出來自兩
(一) 編寫乙個關於程序通訊的簡單程式,子程序送一串訊息給父程序,父程序收到訊息後把它顯示出來。
要求:兩個子程序分別向管道寫一句話:
child process 1 is sending a message!
child process 2 is sending a message!
而父程序則從管道中讀出來自兩個子程序的訊息,顯示螢幕上,且父程序要先接收子程序1的訊息,在接受子程序2的訊息。
#include#include#include#define size 50
int main()
int p1, p2;
int fd[2];
char str[50];
while((pipe(fd)) == -1);
while((p1 = fork()) == -1);
if(p1)
while((p2 = fork()) == -1);
if(p2)
//parent
wait(0);
read(fd[0], str, size);
printf("%s\n", str);
wait(0);
read(fd[0], str, size);
printf("%s\n", str);
else
//child2
lockf(fd[1], 1, 0);
sleep(2);
strcpy(str, "child process 2 is sending messages!\n");
write(fd[1], str, size);
lockf(fd[1], 0, 0);
else
//child1
lockf(fd[1], 1, 0);
sleep(2);
strcpy(str, "child process 1 is sending messages!\n");
write(fd[1], str, size);
//sleep(2);
lockf(fd[1], 0, 0);
(二)父程序等待使用者從控制台(鍵盤)輸入字串,通過管道傳給子程序;子程序收到後,對字串進行大小寫轉換後,輸出到標準輸出(顯示器)。
Node 程序間怎麼通訊的
我們都知道 node 沒法操作執行緒,但可以操作程序,一旦涉及主從模式的程序守護,或者是多機部署的需要,那麼都可能碰上需要相互通訊的場景,本篇就介紹幾種常用方法。最自然的方式,比上一種 正規 一些,具有同樣的侷限性。其底層是 libuv。父 parent.js const cp require ch...
mysql是怎麼備份的
一 備份的目的 做災難恢復 對損壞的資料進行恢復和還原 需求改變 因需求改變而需要把資料還原到改變以前 測試 測試新功能是否可用 二 備份需要考慮的問題 可以容忍丟失多長時間的資料 恢復資料要在多長時間內完 恢復的時候是否需要持續提供服務 恢復的物件,是整個庫,多個表,還是單個庫,單個表。三 備份的...
程序的同步與通訊2
二 讀者寫者問題 個資料檔案或記錄可被多個程序共享,我們把只要求讀該檔案的程序稱為 reader 程序 其他程序則稱為 writer程序 允許多個程序同時讀乙個共享物件,因為讀操 作不會使資料檔案混亂。但不允許乙個writer程序和其他reader程序或writer程序同時訪 問共享物件。因為這種訪...