溫故而知新 Unix環境程式設計之程序控制

2021-03-31 08:56:28 字數 426 閱讀 1881

前提:當乙個程序正常或者異常終止時,核心就向其父程序傳送sigchld訊號。

1)父程序在子程序之前終止,子程序由init程序領養(程序id為1);

2)子程序在父程序之前終止,但其父程序尚未對其進行善後處理(獲取終止子程序的有關資訊、釋放它占用的資源),處於「僵死」狀態。

3)父程序可以通過呼叫wait()和waitpid()來獲取子程序的終止狀態。

4)只要有乙個子程序終止,init程序就會呼叫乙個wait()函式獲取其終止狀態。

5)wait()使其呼叫者阻塞;waitpid()不會;

關於fork函式:

子程序獲得父程序資料空間、堆和棧的複製品,也就是說子程序完整的複製了乙份。

關於copy-on-write技術:

將需要複製的區域的儲存許可權設為「唯讀」,只有當需要修改這些區域時,才做乙個拷貝。

溫故而知新

堆排 建立堆,維護堆的屬性 一次拿掉乙個,然後維護屬性,二分的結構 使得維護屬性只要logn的時間 冒泡也是一次拿走乙個 但是線性的結構 每次沒有節省時間 快排 一次確定 乙個值的位置,然後二分,縮小問題的範圍。floyd找最短 一次更新 將狀態改為經過固定點的 最短距離 迴圈 遍歷每個點,則結果為...

溫故而知新(一)

一 c 基礎語法 1.注釋符 b.解釋所寫的 2.vs中常用的快捷鍵 3.變數 用來在計算機中儲存資料 b.要給儲存空間起乙個有意義的名字,方便我們以後的使用 b.變數型別 變數名 值 4.命名規則 5.號的使用 6.佔位符的使用 先挖坑,再填坑 異常 exception 在程式執行的過程中,由於某...

C 陣列 溫故而知新

using system using system.collections.generic using system.linq using system.text namespace 陣列 陣列初始化器只能在宣告陣列變數時使用,不能在宣告陣列之後使用 int iii new int 用花括號初始化陣...