fork程式設計注意事項

2021-07-09 22:23:35 字數 922 閱讀 6174

概念:

對於unix環境中的高階程式設計而言,完整地了解unix的程序控制是非常重要的。其中必須熟練掌握的只有幾個函式:fork、exec族、_exit、waitwaitpid。

總結一下fork程式設計需要注意的細節:

1.每個程序都有乙個非負整形表示唯一程序id,程序id可以重用,其中涉及延遲重用演算法。

2.fork函式被呼叫一次,會返回兩次,子程序返回值是0,父程序返回值則是子程序的程序id。

3.子程序獲得父程序資料空間、堆和棧的副本,並共享正文段。

4.fork之後是父程序還是子程序先執行是不確定的。

5.fork程式設計需要考慮標準i/o的緩衝區資料被複製問題。

6.fork之後,父子程序共享檔案表,需要考慮檔案描述符互相干擾的問題,也就是同步問題,通常的做法是fork之後關閉它們不需使用的檔案描述符。

7.fork有兩種用法

(1)乙個父程序希望複製自己,使父、子程序同時執行不同的**段

(2)乙個程序要執行乙個不同的程式。這對shell是常見的情況,在這種情況下,子程序從fork返回後立即呼叫exec

8.fork程式設計要處理子程序退出訊號,防止殭屍程序出現。

9.fork之後,子程序繼承父程序的訊號處理方式

10.需要考慮多執行緒和fork的問題(子程序通過繼承整個位址空間的副本, 從而父程序**繼承了所有互斥量,讀寫鎖和條件狀態。如果父程序包含多個執行緒,子程序在 fork 返回以後,如果緊接著不是馬上呼叫 exec 的話,就需要清理鎖狀態。)

參考:《unix環境高階程式設計》

end;

程式設計注意事項

1.動態輸出表頭或資料 每次輸出之前,請先清空表頭以及資料再新增。2.一般資料都要分頁,請直接加上分頁 3.重複性資料的校驗 介面接收資料 1.介面接收資料,一般型別接受 例如 string 列印日誌,之後再轉換成自己想要的格式json等。需求評審 問題一 大面問題 1.是什麼?2.怎樣玩?業務流程...

VBA程式設計 注意事項

1 在自定義函式前加上 private 關鍵字進行宣告,該函式將不會出現在 excel的 貼上函式 對話方塊中,但仍然可以在公式中運用它們。如果是專門為其他的 vba過程開發的自定義函式,則應該使用 private 關鍵字進行宣告。2 通常,使用者自定義函式後,在 貼上函式 對話方塊中將會出現在 使...

wxWidgets程式設計注意事項

1.在類中定義物件 wxauimanager m mgr 編譯無法通過,輸出類似錯誤 demo demo.o in function myframe myframe demo.cpp text 0x6491 undefined reference to wxauimanager uninit dem...