C++ 禁止全局對象析構的三種核心技巧與實戰
為什麼要禁止全局對象析構? 全局對象的析構順序與構造順序相反,但構造順序跨編譯單元是未定義的。這導致: 析構時依賴的其他全局對象可能已被銷毀 多線程環境下,析
AddressSanitizer (ASan) 完全指南:原理、編譯與 Android 實戰
什麼是 AddressSanitizer? AddressSanitizer(簡稱 ASan)是 Google 開發的高效記憶體錯誤檢測工具,類似 Valgri
深入理解 C/C++ 編譯時期斷言:從原理到實戰
什麼是編譯時期斷言? 編譯時期斷言是一種讓編譯器在編譯階段檢查條件是否成立的技術。若條件為假,編譯器會直接報錯,從而將潛在錯誤提前暴露,避免其流入運行時期。這在
C++ 返回值優化(RVO)深度解析與編譯器行為差異
什麼是返回值優化(RVO)? 返回值優化(Return Value Optimization,RVO)是 C++ 編譯器的一項重要優化技術,允許編譯器省略物件的
pthread 條件變量的虛假喚醒與訊號遺漏問題解析
前言 在多執行緒程式設計中,pthread_cond_wait 與 pthread_cond_signal 是常見的同步原語。然而,許多開發者在實際使用時會遇到
C語言二級指針深度解析:從汇編視角理解指針傳遞與修改
前言:為什麼要看汇編? C 語言參數傳遞本質是值傳遞。理解一級/二級指針能否修改外部變量,關鍵在於「值」是什麼。通過 GCC -m32 -O0 生成的 AT&T
HTTP 隧道技術詳解:CONNECT 方法、代理穿透與 HTTPS 代理原理
前言:為什麼 HTTPS 代理需要 CONNECT? 使用 libcurl 等網絡庫通過 HTTP 代理訪問 HTTPS 資源時,會發現兩個 HTTP 響應。這
HTTPS SSL/TLS 握手密鑰導出:Pre-Master Secret 到 Master Secret 完整計算流程
背景 SSL/TLS 安全性核心在於主密鑰導出。許多開發者對 Pre-Master Secret、Master Secret、Session Key 的生成過程
C語言字符串常量存儲機制深度解析:.rodata 區、編譯器行為與常見誤區
前言:程序員認知的三個階段 懵懂階段:知道怎麼寫能跑,不知為何。 求知階段:搜尋資料,理解表面原理。 探索階段:結合工具鏈、內存佈局、標準文檔,驗證本質。
緩衝區溢出攻擊原理與實戰演示:棧溢出漏洞利用詳解
什麼是緩衝區溢出? 緩衝區溢出是指程序向緩衝區寫入數據時超出其邊界,導致相鄰記憶體被覆寫。按發生區域分為堆溢出和棧溢出,本文聚焦棧溢出原理與利用。 x86 棧
Linux 內核等待隊列機制:wait_event_interruptible 詳細解析
前言 在 Linux 內核開發中,wait_event_interruptible 是實現進程休眠與喚醒的核心接口之一。本文通過源碼宏展開,深入剖析其工作原理、
C++ 拷貝構造函數深度解析:從淺拷貝到深拷貝的完整指南
什麼是拷貝構造函數? 在 C++ 中,基本類型(如 int、double)的賦值非常直觀: int a = 100; int b = a; // 直接複製數值
C 語言字串操作完整參考手冊:標準庫、記憶體函數、C++ string 進階
前言 字串處理是 C/C++ 開發的高頻需求。本文系統整理 <string.h>、<ctype.h> 標準庫函數、記憶體操作函數、常見陷
getopt/getopt_long 完全指南:Linux 命令行參數解析標準庫實戰
  核心概念 選項:如 -g, -o 選項參數:緊隨選項的值,如 -o test 中的 test getopt 基礎 API #include &
PV 原語實現進程互斥與同步:從理論到經典案例全解析
  PV 原語基礎 Dijkstra 提出。信號量 S:整數變量,僅通過兩種原子操作訪問: P(S) (wait/proberen):S--; if
C 標準庫字符串函數參考實現:strcpy/strlen/strcmp 等核心源碼解析
  學習價值 深化對 C 指針、數組、空終止字符串語義的理解。 面試筆試高頻考點:手寫 strcpy、strlen、strcmp 等。 掌握斷言檢查、
C 指針進階:徹底搞懂 char (*p)[] 與 char p[] 的本質區別
現象:編譯警告「不兼容的指針類型賦值」 char (*p)[10]; char a[10]; p = a; // 警告:assignment from inc
C 語言實現 15 位身份證升級為 18 位(含校驗碼計算)
背景與規則 中國大陸身份證號從 15 位升級為 18 位,核心變化: 出生年份從 2 位擴展為 4 位(前綴 19 或 20,歷史數據多為 19)。 第 18