Linux 內核模塊開發:Netfilter 協議棧抓包 + Procfs 輸出實戰
架構概覽 Netfilter Hook:註冊 NF_INET_PRE_ROUTING 掛鉤,攔截入站 IP 包 協議解析:skb → ethhdr → iph
C語言 strtol 函數詳解:字符串轉長整型的健壯選擇
函數原型 #include long int strtol(const char *nptr, char **endptr, int base); 參數詳
GCC 編譯器參數完全指南:從入門到交叉編譯
GCC/G++ 基礎區別 gcc / cc:C 編譯器,也能編 C++ 但不自動鏈接 C++ 標準庫 g++ / c++:C++ 編譯器,自動鏈接 libst
Linux 內核 container_of 宏深度解析:從成員指針獲取結構體指針
問題背景 C 語言無「類」概念,但內核大量使用「嵌入式結構體」模擬繼承: struct file { struct list_head f_list;
libpcap 抓包實戰:提取 Ethernet/IP/TCP 關鍵信息完整代碼
程序功能 使用 libpcap 捕獲數據包,解析以太網幀、IPv4 頭、TCP 頭,輸出源/目的 MAC、IP、端口。僅處理 Ethernet + IPv4 +
C語言隨機數生成詳解:從 rand/srand 到偽隨機本質與最佳實踐
核心函數與頭文件 #include // rand, srand, RAND_MAX #include // time (用於種子) int
判斷二叉樹是否為二叉搜索樹(BST)的遞歸算法實現
問題定義 二叉搜索樹(BST)性質:對任意節點,左子樹所有鍵值 < 節點鍵值 < 右子樹所有鍵值。等價於:中序遍歷序列嚴格遞增。 算法思路:中序遍歷 + 前驅
面向對象程序設計(OOP)核心概念與開發方法全景指南
一、傳統結構化開發的局限 重用性差:功能分解導致模塊耦合高,難以跨項目復用。 可維護性差:修改往往牽一髮動全身,維護成本高。 難適應需求變化:以「過程」為中心
C語言實作:字串中數字提取與排序、山脈陣列二分查找演算法解析
前言 在程式設計面試與實務開發中,字串處理與陣列搜尋是兩大經典主題。本文將深入解析兩個實用的演算法問題:第一,從混雜字串中提取數字並排序輸出;第二,在「先增後減
C++ 虛函數與多態深度解析:從原理到面試熱點
虛函數核心機制 C++ 通過 虛函數 實現運行時多態。關鍵字 virtual 標記基類函數,派生類可重寫(override)。一旦基類聲明為虛函數,派生類自動視
COM 智能指標實戰條款 13:必須提前釋放 COM 組件時,別妄想智能指標幫你完成
條款 13:必須提前釋放 COM 組件時,別妄想智能指標幫你完成 陷阱 1:非空智能指標重新建立組件 void InSomewhere(IHello* pHe
COM 智能指標實戰條款 11:型別安全的資源建立與介面查詢——綁定 IID 與介面的編譯期保障
條款 11:以型別安全方式建立資源與查詢介面 手動 CoCreateInstance 的型別不安全陷阱 IxFunction(); // 行為未定義,多數情況錯
COM 智能指標實戰條款 10:嚴禁智能指標與介面指標混用,參數與返回值除外
條款 10:盡量減少智能指標與介面指標混用 混用導致的資源洩漏陷阱 void func() { ICalculator* pCalculator =
COM 智能指標實戰條款 8-9:使用規則爛熟於心,堅決拒絕堆上智能指標陷阱
條款 8:對智能指標使用規則爛熟於心 智能指標使用規則較介面指標更複雜,但為便利與安全值得謹記: RAII 原則:資源申請即綁定智能指標(詳條款 1); 返回
COM 智能指標實戰條款 6:以智能指標全面取代介面指標,消除異常洩漏與類型不安全
條款 6:盡量以智能指標替換介面指標 傳統手動管理引用計數代碼: Release(); } 看似無問題,但若 OtherApp() 拋出異常,Release(