Linux 基於fork 函式父子程序之間的通訊

2021-10-05 03:20:07 字數 566 閱讀 3524

寫乙個程式,包含兩個程序,在子程序輸入參與計算的資料a、b的值,在父程序中計算a+b的值並輸出計算結果;要求輸出子程序和父程序的程序id.

源程式:

#include

#include

#include

#include

#include

#include

intmain

(void

)pid =

fork()

;if(pid <0)

else

if(pid ==0)

else

exit

(exit_success)

;}

結果分析:

由於父子程序的資料是不共享的,上述**使用管道實現了父子程序的通訊,管道是一種把兩個程序之間的標準輸入和標準輸出連線起來的機制,從而提供一種讓多個程序間通訊的方法,當程序建立管道時,每次都需要提供兩個檔案描述符來操作管道。其中乙個對管道進行寫操作,另乙個對管道進行讀操作。對管道的讀寫與一般的io系統函式一致,使用write()函式寫入資料,使用read()讀出資料

Linux 父子程序與fork

每個程序都有乙個非負整數表示的唯一程序id,如交換程序 即排程程序 id為0,init程序id為1,頁守護程序id為2 原型如下 fork函式被呼叫一次,但返回兩次,兩次返回的區別就是子程序返回的是0,父程序返回的新子程序的id 子程序是父程序的副本,獲得了父程序資料空間 堆和棧的副本 父子程序並不...

5 8fork父子程序

理解fork建立子程序的本質 1 開啟乙個有內容的檔案 2 呼叫fork建立子程序 3 讀檔案的第乙個字元輸出列印出來 4 看看父程序和子程序分別讀到的字元是什麼 2 按如下要求編寫程式 1 呼叫fork建立子程序 2 開啟乙個有內容的檔案 3 讀檔案的第乙個字元輸出列印出來 4 看看父程序和子程序...

fork父子程序執行順序

使用一段 來檢查父子程序執行順序 str hello world php eol 派生乙個子程序,子程序會複製主程序中的上下文 pcntl fork 函式在主程序中返回子程序的程序id,在子程序返回0,失敗在主程序返回 1 pid pcntl fork 這裡開始的 會被主程序 子程序共同執行 如果不...