什麼是程序?
linux下程序的控制
程序建立
程序等待
程序終止
程序的建立就是父程序建立子程序的過程
fork()函式
init fork(void)
特點:
1.分配程序識別符號
2.建立pcb
3.複製父程序的環境
4.給子程序分配記憶體空間,將父程序的資料拷貝到該程序
5.將子程序置成就緒狀態,放入就緒佇列。
從fock的返回值開始執行,執行兩份(1份子程序1份父程序)
返回值 是pid_t pid=fock();(繼承中段、繼承優先順序、不繼承ppid,pid)
5 14 else if(pid >0) //父程序
此時我們發現fork之後程式是父子交替在執行
殭屍程序和孤兒程序
孤兒程序:父程序死亡後,子程序成為孤兒程序,程序號就寫成1
殭屍程序:如果子程序先死亡,父程序沒有去用wait收他,子程序成為殭屍程序
getpid();(獲得乙個程序的pid,就是int型)
getppid();(獲得乙個父程序的程序pid,就是int型)
假如我們上面不slepp(1),父程序執行完直接退出,會出現什麼結果呢?
可以看到子程序裡面pid=1,成為了孤兒程序
wait函式
函式原型:pid_t wait(int *s)
作用: wait是阻塞函式,直到有子程序死亡(不是再有殭屍程序)
程序終止分為5中其中包括正常終止和不正常終止
正常終止:
1.main 退出
2.exit();0~255
執行退出處理程式
清空快取
_exit:系統退出程式(無重新整理快取的功能)
atexit
atexit//註冊退出程式
只有在退出之前才執行
不正常終止:
1.ctrl+c
2.about()
3.kill pid
Linux 程序建立 程序終止
程序終止 fork 在linux中fork函式時非常重要的函式,它從已存在程序中建立乙個新程序。新程序為子程序,而原程序為父程序。include pid t fork void 返回值 自程序中返回0,父程序返回子程序id,出錯返回 1子程序複製父程序的pcb,因此複製了父程序的程式計數器,所以和父...
程序建立,程序等待,程序終止
1 程序建立,2 程序等待,3 程序終止 程序建立被定義為通過父程序建立子程序的過程。fork函式 函式原型 pid t fork void 特點 1.fork函式呼叫一次,返回兩次兩次返回值得區別分別是子程序當中的返回值為0,父程序當中的返回值為新建子程序的id 將id返回給父程序的原因是沒有函式...
程序建立,終止,等待
今天我們來說一說程序的建立,終止,等待。1 程序的建立 建立乙個程序我們用到的函式是fork函式,它從已存在的程序中建立乙個新的程序,新程序為子程序,而原程序為父程序。fork函式 include pid t fork void 子程序返回0,父程序返回子程序的id,出錯返回 1。值得注意的是,父程...