mysql程序是怎麼通訊的 2 程序間的管道通訊

2021-10-18 12:02:56 字數 2108 閱讀 7089

(一) 編寫乙個關於程序通訊的簡單程式,子程序送一串訊息給父程序,父程序收到訊息後把它顯示出來。 要求: 兩個子程序分別向管道寫一句話: 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程序同時訪 問共享物件。因為這種訪...