原创 C 擴展關鍵字

gcc 擴展關鍵字 __attribute__ 設置函數屬性, 變量屬性, 數據類型屬性等, 向編譯器提供更多數據, 幫助編譯器執行優化 描述函數屬性 使用 addr2line 工具分析源代碼, 統計程序的運行狀態 void fu

原创 C 語言基本概念

概述 for 循環和 while 循環本質上是等價的 通過地址找到一個值, 通過類型解釋一個值, 這就是爲什麼數組名的地址同數組的第一個元素的地址, 但使用 sizeof 和 & 訪問到的則是整個數組的長度和地址 類對象是基於結構的 c

原创 atom 編輯器使用 gbk 編碼查找替換顯示亂碼及查找不到頭文件等問題

問題 查找亂碼: 查找面板中,只支持 utf8 編碼字符的顯示,gbk 編碼的中文註釋會顯示亂碼, 可在查找文件中隨意輸入一個字符, 即可更新顯示爲正確字符 替換亂碼: gbk 和 utf8 相互轉換會出現經典的”錕斤拷”亂碼, 爲避免

原创 UNIX 時間和日期例程

1. 時間計量系統 時間計量系統有:世界時(UT),國際原子時(TAI),格林尼治標準時(GMT),協調世界時(UTC)等等。 北京時間比 UTC 時間早8小時 UTC時間是1999年1月1日00:00 北京時間是1999年1月1日08:

原创 C 函數庫及頭文件

1 函數庫 庫本質上是一種經過編譯的可執行二進制代碼,可以被操作系統載入內存執行。 Linux 和 Windows 等不同平臺編譯環境不同, 函數庫不兼容。 1.1 靜態庫 Static Library 靜態是指每個用到該庫的應用程

原创 errno(3) 線程局部變量

注意 NOTE A common mistake is to do 一個常見的錯誤是像下面這樣 if (somecall() == -1) { printf("somecall() failed\n"); if (err

原创 Firewall 防火牆基礎

1. 防火牆技術 防火牆是用於阻止計算機之間直接通信,位於兩個或多個網絡間,實施網絡之間訪問控制的組件集合。 技術 協議棧 判據 檢測內容 邏輯位置 物理位置 代表 靜態包過濾 網絡層 訪問控制表 源地址, 目的地址 網絡邊界

原创 C 關鍵字

C reserved keywords 存儲類型說明符 storage-class specifier keywords meaning auto automatic duration storage-class specif

原创 C 函數聲明, 函數原型, 函數定義

函數聲明的發展 1 隱式函數聲明 implicit function declaration main 函數和 printf 函數返回值類型爲 int, 若不聲明, 編譯器默認函數返回值爲 int 類型 C90標準起,這種寫法就步入了被

原创 C 預處理指令

1 宏定義 #define #undef 1.1 宏定義概述 宏定義指令定義了一個標識符(宏名)及一個字符串, 在源程序中每次遇到該標識符時, 均以定義的字符串替換它(宏替換) 宏名和參數間不能有空格, 標識符和字符串間可有任意空格 字

原创 grep(1) 正則表達式文本查找工具

還沒寫完!!! 1. 概念 CONCEPT 1. 什麼是匹配器 Matcher 匹配器就是查找文本所用的正則表達式的種類。好比用 google 搜索還是用 baidu 搜索。 2. 什麼是匹配控制 Matching Control 匹配控

原创 C 程序的內存空間佈局

C 程序的內存空間佈局 表格中, 從上到下爲高地址到低地址方向 segment 含義 argument and environment 命令行參數和環境變量(環境表和環境字符串) stack 棧 heap 堆 bs

原创 C 程序文件

elf(exective linked file) elf 格式文件是一種爲 Linux 系統所採用的通用文件格式, 支持動態鏈接和重定位, 有很大的文件頭 flat flat 格式文件是扁平格式的文件, 對文件頭和一些段信息做了簡化,

原创 內存中堆和棧

棧 棧是機器系統提供的數據結構, 現代計算機(串行執行機制)都直接在代碼底層支持棧的數據結構, 有專門的寄存器指向棧所在的地址, 有專門的機器指令完成數據入棧出棧的操作 棧的特點是效率高, 支持的數據類型有限, 一般是整數, 指針, 浮

原创 在 Atom 編輯器中使用代碼段 snippets 編寫 Markdown 文本

1. 截圖 2. 代碼段 1. 查看當前可用的代碼段 snippets alt-shift-S 2. 默認快捷鍵配置 'atom-text-editor:not([mini])': 'alt-shift-S': 'snippets: