01
C语言与命令行
C语言发展史 · 命令行工具价值 · 开发环境搭建 (GCC/Make) · 第一个CLI程序
入门环境
02
GCC编译器
GCC安装与版本 · 编译流程 · 常用编译选项 · 静态库与动态库
编译工具链
03
Makefile基础
Makefile语法 · 目标与依赖 · 变量与自动变量 · 伪目标 · 常见模板
构建自动化
04
CMake入门
CMake安装 · CMakeLists.txt编写 · 构建与安装 · 跨平台配置
构建跨平台
05
标准输入输出
printf格式化 · scanf陷阱 · getchar/putchar · 行缓冲与无缓冲
IO基础
06
文件IO操作
fopen/fclose · fread/fwrite · fprintf/fscanf · 二进制与文本文件
文件IO
07
命令行参数
argc与argv详解 · getopt函数 · 长选项解析 · 参数校验
参数CLI
08
环境变量
getenv/setenv · environ全局变量 · 配置文件与环境变量结合
环境配置
09
错误处理
errno与perror · strerror · 自定义错误码 · 断言assert
调试健壮性
10
字符串处理
strlen/strcpy/strcat · strcmp/strncmp · strtok分割 · sprintf安全替代
字符串工具
11
内存管理
malloc/calloc/realloc · free与内存泄漏 · Valgrind检测 · 内存池设计
内存性能
12
数据结构基础
单向链表 · 双向链表 · 栈与队列 · 哈希表简单实现
数据结构核心
13
排序与搜索
qsort使用 · bsearch二分查找 · 自定义比较函数 · 排序算法选型
算法查找
14
正则表达式
regex.h库 · 编译正则 · 匹配与捕获 · 日志解析案例
正则文本
15
时间与日期
time_t与struct tm · clock_gettime高精度计时 · 定时器实现
时间系统
16
信号处理
signal函数 · sigaction · SIGINT/SIGTERM处理 · 优雅退出
信号异步
17
多线程基础
pthread_create/join · 互斥锁mutex · 条件变量 · 线程安全
线程并发
18
进程管理
fork/exec · waitpid · 管道pipe通信 · 进程池模型
进程IPC
19
网络编程基础
socket创建 · TCP客户端/服务器 · select多路复用 · 非阻塞IO
网络Socket
20
HTTP客户端
socket实现HTTP GET/POST · 解析响应头 · libcurl封装使用
HTTP网络
21
JSON解析
cJSON库集成 · 解析与构建 · 配置文件JSON化
JSON数据交换
22
INI配置文件
ini解析器实现 · 键值对读写 · section管理
配置解析
23
日志系统
日志级别 · syslog使用 · 滚动日志实现 · 日志格式化
日志调试
24
调试技巧
GDB基础命令 · 断点与观察点 · core dump分析 · AddressSanitizer
调试GDB
25
性能优化
profiling工具 (gprof/perf) · 热点函数识别 · 缓存友好代码
优化性能
26
单元测试
CUnit框架 · 测试用例编写 · mock对象 · 覆盖率gcov
测试质量
27
文档生成
Doxygen注释规范 · 文档生成配置 · API文档自动化
文档规范
28
打包发布
deb/rpm包制作 · 静态编译 · 安装脚本 · 版本管理
部署发布
29
实战项目1:文件搜索工具
类似grep简化版 · 支持正则 · 递归 · 彩色输出
项目实战
30
实战项目2:命令行任务管理器
添加/删除/列表 · 持久化存储 · 全功能CLI
项目综合