I/O 錯誤檢查時機
- 每次呼叫 I/O 函數後立即檢查
ferror(),否則錯誤資訊可能被後續呼叫覆蓋
臨時檔案安全原則
- 確保檔案名唯一,避免衝突(使用
tmpnam()、mkstemp())
- 保護內容不被他人竄改/刪除/讀取(權限
0600、安全目錄)
目錄選擇考量因素
- 資料量大小:目錄適合小量屬性資料,大檔案用指標/路徑引用
- 資料類型:目錄通常存屬性/中繼資料
- 讀寫比:大量寫入場景考慮資料庫
- 搜尋能力與標準存取介面
I/O 效能優化
- I/O 本質較慢,完善模型有限提升
- 建議:專用 I/O 執行緒 + 工作佇列,但不指望數量級提速
目錄操作細節
rmdir() 僅能刪除空目錄
DELTREE(Windows)遞歸刪除整棵目錄,忽略隱藏/唯讀屬性
fnmerge() 組合路徑前,先確認磁碟機與目錄存在
陣列使用鐵律
- 下標從 0 開始
- 陣列變數名小寫
- 名稱要有語意
- C 不檢查越界,開發者自行保證邊界安全
指標與記憶體管理
- 及時釋放無用指標指向的記憶體(
free()),節省空間
- 陣列操作優先用下標語法
a[i],雖略慢但可讀性高
- 絕對禁止解參考空指標
- 指標函數回傳型別通常為
int* 或 void*
- 避免多層指標(
**、***),降低可讀性
複雜結構圖示化
文字難以描述的程式結構(如樹、圖、狀態機),請繪製圖示(UML、流程圖、記憶體佈局圖),溝通效率大幅提升。