系列教學導覽
本文彙整「Linux 下 C 語言程式設計」系列的完整主題清單,涵蓋從基礎語法到系統程式設計的核心議題,適合初學者循序漸進學習,也可供進階開發者查缺補漏。
完整主題目錄
基礎入門篇
- 演示編輯和運行 C 語言程序 - 環境建置、vi 操作、GCC 編譯執行
- getchar() 詳解 - 標準輸入字符讀取函數用法與陷阱
- getch() 詳解 - 非標準字符讀取、跨平台差異與替代方案
- 關於 EOF - 文件結束標誌處理與常見誤區
函式庫與連結篇
- 關於靜態鏈接庫 - .a 檔建立、使用與管理
- 關於動態鏈接庫 - .so 檔製作、載入機制、路徑設定
- Windows 下的鏈接庫 - DLL 與 Linux .so 差異比較
進階語言特性篇
- 華為 C 語言面試題之 extern - 外部變數宣告、跨檔案共享、C++ 混合編程
- 華為 C 語言面試題之 Variable - 變數儲存類別、作用域與生命週期
- 淺談動態內存 - malloc/free、記憶體對齊、碎片整理
- 讓系統更安全之鎖定內存 - mlock/mlockall 防止分頁交換
- 內存映像那些事兒 - mmap/munmap、檔案映射、共享記憶體應用
進程管理篇
- "俠肝義膽" 之進程 - fork/vfork、進程複製、資源共享機制
- 關於進程等待 - wait/waitpid、殭屍進程處理、回收子進程
- 退出進程 - exit/_exit、atexit、緩衝區刷新差異
信號處理篇
- 信號處理 - signal、pause、基本捕捉範例
- 信號具體含義解釋 - SIGINT、SIGKILL、SIGCHLD 等常用信號語義
- 信號處理方法 && 實際應用 - 捕捉、忽略、預設動作、實戰場景
- signal 和 sigaction - 可靠信號機制、SA_RESTART、SA_SIGINFO
- 信號集及操作 - sigset_t、sigemptyset、sigaddset、sigprocmask
- sigprocmask 阻塞進程 - 信號屏蔽、暫停與恢復、關鍵區保護
- sigsuspend 進程阻塞 - 原子性等待信號、避免競態條件
- sigsuspend 執行過程分析 - 狀態轉換、信號遞送流程
- raise - 向自身發送信號、使用者定義信號觸發
- alarm - 定時器、SIGALRM、非阻塞延遲
- setitimer - 間隔定時器、ITIMER_REAL/PROF/VIRTUAL
- 信號處理潛在危險 - 非重入函數、errno 競爭、長跳轉風險
檔案與 I/O 篇
- 文件類型和屬性 - 一般檔、目錄、字元/區塊裝置、符號連結
- Linux 文件組織信息 - inode、目錄項、硬連結與軟連結
- 文件操作 - open/read/write/close/lseek、原子操作、鎖機制
網路程式設計篇
- 網絡編程之通信機制和體系結構模式 - OSI 七層、TCP/IP 四層、封裝解封裝
- socket 實例 - TCP/UDP 客戶端伺服端完整範例
多執行緒與同步篇
- undefined reference to 'pthread_create' 問題解決 - -lpthread 連結、編譯順序
- 線程互斥實例 - pthread_mutex_t、鎖粒度、死鎖預防
- 底層終端編程實例 - termios、原始模式、鍵盤非阻塞讀取
進程間通訊 (IPC) 篇
- 共享內存通信實例 - shmget/shmat/shmdt、同步配合信號量
- 消息隊列實例 - msgget/msgsnd/msgrcv、優先級、讀寫模式
學習建議
- 新手:按順序 1→4 打好基礎,再進入函式庫與進程章節
- 進階:重點攻克信號處理(16-27)、IPC(36-37)、多執行緒(33-35)
- 面試準備:專研華為面試題(8-9)、動態記憶體(10-12)、進程細節(13-15)
延伸資源
每個主題均包含完整程式碼範例與執行截圖,建議在實體機或虛擬機上親自編譯執行,觀察輸出差異,加深印象。