今天我們來說一說程序的建立,終止,等待。
1、程序的建立
建立乙個程序我們用到的函式是fork函式,它從已存在的程序中建立乙個新的程序,新程序為子程序,而原程序為父程序。
fork函式:
#include pid_t fork(void);
子程序返回0,父程序返回子程序的id,出錯返回-1。
值得注意的是,父程序和子程序共享**,資料是「寫時拷貝」。
fork也有呼叫失敗的時候,fork呼叫失敗的原因:
1、系統中有太多的程序。
2、實際使用者的程序數超過了限制。
下面是利用fork函式實現建立程序的**。
執行結果
2、程序的終止
程序退出的情況:
(1)**執行完畢,結果正確。
(2)**執行完畢,結果不正確。
(3)**異常終止。
程序的退出方法:
i 正常終止(可通過 echo$?檢視退出碼)
(1)從main返回
(2)呼叫exit
(3)_exit
ii異常退出
ctrl + c ,訊號終止。
今天我們來通過呼叫exit來實現程序終止
執行結果
這裡我們使用echo $?檢視了一下,返回碼為0。
3、程序等待
程序等待的必要性:
(1)避免記憶體洩漏。
(2)我們需要知道父程序派給子程序的任務完成的如何。
(3)程序變成殭屍狀態,無法殺死。
(4)父程序通過程序等待的方式,**子程序資源,獲取子程序退出資訊。
程序等待的方法
(1)wait方法
(2)waitpid方法
實現程序等待的**
執行結果
程序建立,程序等待,程序終止
1 程序建立,2 程序等待,3 程序終止 程序建立被定義為通過父程序建立子程序的過程。fork函式 函式原型 pid t fork void 特點 1.fork函式呼叫一次,返回兩次兩次返回值得區別分別是子程序當中的返回值為0,父程序當中的返回值為新建子程序的id 將id返回給父程序的原因是沒有函式...
Linux程序控制(建立 等待 終止)
一 linux程序建立 1.1 fork函式 在linux中fork函式是乙個非常重要的函式,它從已存在程序中建立了乙個新程序。新程序為子程序,而原程序為父程序 include pid t fork void 返回值 自程序中返回0,父程序返回子程序id,出錯返回 1 程序呼叫fork,當控制轉移到...
Linux 程序的建立 等待與終止
使用fork函式來建立程序,它可以從已存在的程序中建立乙個新程序,新程序為子程序,原程序為父程序。程序呼叫fork,當控制轉移到核心中的fork 後,核心 程序建立的 執行結果 可以從結果看出新產生了乙個pid為4060的程序,這個程序就是子程序,pid為4059的程序是父程序,在子程序也進入到程序...