硬核实战:从 C 语言基础到 Linux 系统编程的完整闭环
这门课是王道训练营 C++ 62 期的核心资料包,但实质内容是经典的 C 语言进阶与 Linux 系统编程体系。它不卖空泛的编程概念,而是直接聚焦于计算机底层原理与工程化落地,非常适合想深入理解计算机运行逻辑、准备从事后端开发、嵌入式开发或系统运维的读者。课程逻辑严密,从 C 语言基础语法一直延伸到复杂的系统级项目实战。
零基础友好,但需具备计算机专业背景
资料包包含 16 个章节的 PDF 课件及思维导图,内容覆盖了从基本数据类型、表达式语句,到指针、数组、结构体等核心难点,再到数据结构、排序算法及文件操作。虽然名为 C++ 训练营,但内容完全基于 C 语言,这意味着如果你没有 C 语言基础,建议先自学《C 语言入门》等基础教程。资料中的思维导图清晰梳理了知识脉络,能帮助你快速建立整体框架,避免陷入细枝末节的死胡同。对于计算机专业学生或有一定编程基础的转行者,这套资料是巩固底层思维、打通底层代码能力的最佳选择。
以项目驱动学习,资料需配合环境自行实操
课程高潮在于第十六章的“词法分析器项目”,这是一个典型的 Linux 系统编程实战项目,涉及命令行参数处理、内存管理、文件 IO 及复杂的逻辑构建。学完这部分,你能够独立编写一个从文本文件中提取关键字的命令行工具,具备独立开发小型系统级软件的能力。资料包提供了详细的理论支撑,但缺乏视频教程和预编译好的工程文件,这意味着你必须自行配置 Linux 环境(如 Ubuntu 或 WSL),手动搭建代码框架并进行调试。建议先通读前十四章的知识点总结,厘清指针与内存操作逻辑,再动手敲代码实现项目,否则极易因环境配置或语法细节卡住。这门课的价值在于“练”而不是“听”,只有亲手在 Linux 环境下跑通项目,才能真正掌握系统编程的精髓。
课程目录
课程目录263 集
- 1.C.mp4
- 第八章 指针.pdf 200.57kb
- 第二章 格式化输入输出.pdf 272.23kb
- 第九章 指针与数组.pdf 270.75kb
- 第六章 数组.pdf 272.32kb
- 第七章 函数.pdf 481.97kb
- 第三章 基本数据类型.pdf 491.75kb
- 第十二章 指针的高级应用.pdf 417.12kb
- 第十六章 词法分析器项目.pdf 731.64kb
- 第十三章 常用数据结构.pdf 2.07M
- 第十四章 排序和二分查找.pdf 2.45M
- 第十五章 文件.pdf 456.65kb
- 第十一章 结构体和枚举.pdf 258.94kb
- 第十章 字符串.pdf 417.64kb
- 第四章 表达式.pdf 370.52kb
- 第五章 语句.pdf 525.02kb
- 第一章 C语言概述.pdf 455.83kb
- 课件
- 知识点总结
- C语言.xmind 141.11kb
- 数据结构和算法.xmind 94.94kb
- 2.Linux.mp4
- Linux01
- 笔记
- 视频
- Linux02
- Linux03
- Linux04
- Linux05
- Linux06
- Linux07
- Linux08
- Linux09
- Linux10
- Linux11
- Linux12
- Linux13
- Linux14
- 画图
- index.html 0.12kb
- Linux14_01_概述_网络的历史_20241004_092859.mp4 646.53M
- Linux14_02_网络硬件_模型_协议作用_分层的结构_20241004_105609.mp4 357.78M
- Linux14_03_一个网页的产生的问题和HTTP的关系_20241004_143335.mp4 474.93M
- Linux14_04_http的请求报文_请求行_请求方式_20241004_155544.mp4 565.43M
- Linux14_05_http的请求头_20241004_171411.mp4 300.30M
- Linux14.ppt 2.03M
- Linux15
- Linux15_01_回顾协议_http_https_20241005_093133.mp4 409.69M
- Linux15_02_https_tcp的特点_20241005_105603.mp4 299.78M
- Linux15_03_tcp头部_20241005_143146.mp4 403.64M
- Linux15_04_tcp重传_窗口机制_udp协议_20241005_154746.mp4 386.89M
- Linux15_05_udp协议_ip地址_ip首部_20241005_170620.mp4 328.89M
- Linux15.ppt 2.83M
- Linux16
- Linux16_01_回顾_路由器_信号举例_20241006_093201.mp4 390.24M
- Linux16_02_路由器_net转换_20241006_105230.mp4 322.70M
- Linux16_03_以太网帧_socket概述_20241006_143032.mp4 383.10M
- Linux16_04_大端小端_点分十进制转化_20241006_154731.mp4 471.27M
- Linux16_05_基于tcp协议的socket通信流程_20241006_171034.mp4 311.05M
- Linux16.ppt 2.04M
- Linux17
- Linux17_01_基于tcp通信的socket_20241008_093036.mp4 452.54M
- Linux17_02_基于tcp通信的socket代码实现_20241008_105457.mp4 480.62M
- Linux17_03_基于tcp的socket通信_引入select_io多路复用_20241008_143057.mp4 475.56M
- Linux17_04_端口占用_断开重连的简单实现_20241008_154816.mp4 420.48M
- Linux17_05_群聊_超时踢出的一些想法_20241008_170701.mp4 343.65M
- Linux17.ppt 1.86M
- Linux18
- Linux18_01_回顾_作业_20241009_093034.mp4 372.27M
- Linux18_02_作业_tcp没有边界_自定义协议_20241009_105256.mp4 511.64M
- Linux18_03_hash算法_基于udp通信的socket逻辑_20241009_142950.mp4 462.21M
- Linux18_04_select和epoll的原理_20241009_155607.mp4 379.44M
- Linux18_05_epoll的代码实现_20241009_170607.mp4 368.07M
- Linux18.ppt 1.54M
- Linux19
- Linux19_01_回顾_udp_epoll_作业_20241010_092958.mp4 485.56M
- Linux19_02_epoll修改之前的群聊_epoll的触发模式_20241010_105831.mp4 481.54M
- Linux19_03_非阻塞的recv_半包问题的一些想法_20241010_141819.mp4 219.79M
- Linux19.ppt 515.00kb
- Linux20
- Linux20_01_回顾_作业_20241011_093045.mp4 581.62M
- Linux20_02_多线程_多进程设计考虑_20241011_105534.mp4 345.52M
- Linux20_03_进程池的设计_本地socket_20241011_143000.mp4 406.12M
- Linux20_04_本地socket通信_实现进程池_20241011_155111.mp4 438.01M
- Linux20_04_进程池的实现_20241011_170617.mp4 369.27M
- Linux20.ppt 1.25M
- LInux21
- Linux21_01_粘包和半包问题_小火车头部_msg_waitall_20241012_093019.mp4 539.76M
- Linux21_02_半包问题_sigpipe信号_进度条获取文件大小_拷贝问题_20241012_105637.mp4 508.50M
- Linux21_03_拷贝问题_退出进程的思考_20241012_143036.mp4 503.01M
- Linux21_04_进程池的退出_线程池的设计_实现_20241012_155127.mp4 500.77M
- Linux21_05_线程池的实现_20241012_171222.mp4 243.54M
- Linux21.ppt 1.19M
- Linux22
- Linux22_01_线程池的退出问题_20241014_093545.mp4 453.90M
- Linux22_02_线程池的退出_git的历史和作用和安装_20241014_105900.mp4 386.70M
- Linux22_03_git基本命令_20241014_143055.mp4 436.77M
- Linux22_04_分支问题_20241014_154706.mp4 405.02M
- Linux22_05_分支问题_冲突_和两个人编写代码交互_20241014_170640.mp4 406.44M
- Linux22_06_本地分支推送远程_远程分支拉取到本地_20241014_200215.mp4 66.06M
- Linux22.ppt 1.62M
- Linux23
- Linux23_01_git的分支的使用_20241015_093142.mp4 459.68M
- Linux23_02_git回退_忽略文件_本地项目上传_数据库介绍_20241015_104901.mp4 525.07M
- Linux23_03_mysql的安装的一些问题_20241015_143030.mp4 427.51M
- Linux23_04_库操作_数据类型_20241015_155253.mp4 392.35M
- Linux23_05_数据类型_查看表_创建表_20241015_171025.mp4 282.23M
- Linux23.ppt 2.37M
- mysql8的安装和连接.mp4 53.43M
- 新建 XLSX 工作表.xlsx 11.26kb
- Linux24
- Linux24_01_表的创建_主键_自增_20241016_093154.mp4 448.34M
- Linux24_02_主键_自增_表操作修改_删除_数据的增删改查_where条件_20241016_105628.mp4 409.84M
- Linux24.ppt 1.39M
- Linux25
- Linux25_01_sql关键字_20241017_093100.mp4 385.41M
- Linux25_02_排序分组聚合_sql执行顺序_20241017_105044.mp4 430.43M
- Linux25_03_数据完整性_范式_表关系_20241017_143038.mp4 426.07M
- Linux25_04_交叉连接_自然连接_内连接_外连接_自连接_20241017_154835.mp4 428.32M
- Linux25_05_子查询_联合查询_数据备份_20241017_170547.mp4 358.59M
- Linux25.ppt 2.62M
- 外连接和内连接.xls 28.00kb
- Linux26
- Linux25_03_事务_隔离级别_20241018_143055.mp4 427.27M
- Linux25_04_隔离级别_存储引擎_20241018_154702.mp4 435.09M
- Linux25_05_存储引擎_B+树_索引结构_20241018_170340.mp4 350.48M
- Linux26_01_回顾_mysql的capi_20241018_093119.mp4 380.18M
- Linux26_02_capi使用和注意_20241018_104958.mp4 519.38M
- Linux26.ppt 2.03M
- Linux27
- Linux27_01_项目介绍_20241019_093049.mp4 489.60M
- Linux27_02_项目介绍_20241019_105740.mp4 438.33M
- Linux27_03_第二期_20241019_142906.mp4 162.19M
- Linux28
- Linux28_01_第三期_20241021_143409.mp4 446.04M
- Linux28_02_第三期_sql问题_20241021_154659.mp4 226.66M
- sql注入.png 54.13kb
- 第三期_表模拟目录森林.png 198.75kb
- 第三期_断点标记问题.png 39.50kb
- 第三期_用户密码.png 90.41kb
- Linux30
- l8w8jwt-2.1.7-linux-x86_64.tar.gz 246.97kb
- Linux30_第四期_20241023_194013.mp4 141.00M
- token加密.jpg 182.00kb
- 第三期.png 87.61kb
- 第四期.png 354.02kb
- Linux31
- 长短命令分离.jpg 180.38kb
- 第五期_索引问题20241025_143403.mp4 660.28M
- 第五期的一些想法.png 1.44M
- 索引2.png 602.24kb
- 索引3.png 646.92kb
- 索引_匹配原则.png 92.20kb
- 索引.png 337.88kb
- 讲义
- Linux_01_常用命令.pdf 659.67kb
- Linux_02_vim.pdf 430.04kb
- Linux_03_编译工具链.pdf 1.66M
- Linux_04_目录.pdf 365.13kb
- Linux_05_文件.pdf 767.07kb
- Linux_06_进程.pdf 871.91kb
- Linux_07_进程间通信.pdf 813.82kb
- Linux_08_线程.pdf 821.23kb
- Linux_0_Linux简介.pdf 518.81kb
- Linux_10_网络编程.pdf 688.84kb
- Linux_11_http.pdf 743.79kb
- Linux_12_进程池和线程池.pdf 838.40kb
- Linux_9_网络协议.pdf 594.46kb
- Ubuntu的安装与配置 .pdf 1.80M
- vim的安装与配置.pdf 187.30kb
- func.h 0.59kb
- Makefile 0.20kb
- vimrc 13.78kb
- 3.C++.mp4
- C++(60期)
- CppBaseDay01
- CppBaseDay02
- CppBaseDay03
- CppBaseDay04
- CppBaseDay05
- CppBaseDay06
- CppBaseDay07
- CppBaseDay08
- CppBaseDay09
- CppBaseDay10
- CppBaseDay11
- CppBaseDay12
- CppBaseDay13
- CppBaseDay14
- CppBaseDay15
- CppBaseDay16
- CppBaseDay17
- CppBaseDay18
- day01
- day01_1.C++发展概述.mp4 265.25M
- day01_2.命名空间的基本使用.mp4 270.55M
- day01_3.命名空间的基本使用_const常量.mp4 290.93M
- day01_4.三组对比_new_delete表达式.mp4 284.30M
- day01_5.new数组空间_引用的基本认识.mp4 241.47M
- day02
- day02_1.复习_引用的基本用法.mp4 315.14M
- day02_2.强制转换_函数重载_默认参数.mp4 314.11M
- day02_3.inline函数_异常处理.mp4 323.20M
- day02_4.内存布局_C风格字符串_面向对象介绍.mp4 273.94M
- day02_5.类的定义.mp4 253.74M
- day03
- day03_1.复习_构造函数.mp4 365.85M
- day03_2.构造函数_对象空间大小.mp4 364.17M
- day04
- day04_1.析构函数.mp4 283.68M
- day04_2.拷贝构造函数_认识左值右值.mp4 309.21M
- day04_3.赋值运算符函数.mp4 440.68M
- day04_4.特殊的数据成员.mp4 301.79M
- day04_5.特殊的数据成员_特殊的成员函数.mp4 281.65M
- day05
- day05_1.作业讲解.mp4 355.29M
- day05_2.对象的组织_new_delete的工作步骤.mp4 530.80M
- day05_3.单例模式的探究.mp4 432.11M
- day05_4.单例模式的探究_C++字符串.mp4 484.48M
- day05_5.string的常用操作_C++动态数组.mp4 435.80M
- day07
- day07_1.vector的基本使用.mp4 508.84M
- day07_2.作业讲解.mp4 396.00M
- day07_3.作业讲解_C++流的介绍.mp4 444.54M
- day07_4.标准输入流的使用.mp4 378.35M
- day07_5.流的缓冲机制_文件输入流的使用.mp4 383.36M
- day07_6.插件设置.mp4 11.17M
- day08
- CppBase第一阶段.xmind 259.76kb
- day08_1.作业讲解_文件输入流.mp4 318.47M
- day08_2.文件输出流_字符串输入输出.mp4 381.82M
- day08_3.CppBase第一阶段复盘_日志系统的介绍.mp4 223.82M
- day08_4.log4cpp示例代码解读.mp4 486.73M
- day08_5.log4cpp的使用.mp4 479.53M
- The_Holy_Bible.txt 4.15M
- day09
- day09_1.作业讲解和说明.mp4 297.35M
- day09_2.友元_运算符重载介绍.mp4 342.97M
- day09_3.运算符重载简单案例.mp4 347.60M
- day10
- day10_1.log4cpp单例作业讲解.ev4 334.88M
- day10_1.log4cpp单例作业讲解.mp4 334.88M
- day10_2.词频统计作业讲解_下标运算符重载.ev4 403.54M
- day10_2.词频统计作业讲解_下标运算符重载.mp4 403.53M
- day10_3.输入输出流运算符重载_箭头运算符重载.ev4 441.30M
- day10_3.输入输出流运算符重载_箭头运算符重载.mp4 441.29M
- day10_4.箭头运算符_解引用运算符_函数调用运算符重载.ev4 476.46M
- day10_4.箭头运算符_解引用运算符_函数调用运算符重载.mp4 476.45M
- day10_5.函数对象_函数指针_成员函数指针.ev4 418.07M
- day10_5.函数对象_函数指针_成员函数指针.mp4 418.06M
- day11
- day11_1.复习_类型转换函数.mp4 410.42M
- day11_2.类型转换函数_嵌套类.mp4 445.16M
- day11_3.pimpl模式_单例对象自动释放.mp4 351.35M
- day11_4.单例对象自动释放_写时复制字符串原理分析.mp4 367.69M
- day11_5.写时复制字符串源码实现.mp4 240.50M
- day12
- china_daily.txt 6.15kb
- day12_1.作业讲解_CowString源码实现.mp4 356.43M
- day12_2.CowString的源码实现.mp4 459.97M
- day12_3.SSO设计思想_set的基本使用.mp4 475.05M
- day12_4.补档_map的基本操作.mp4 419.16M
- day12_5.map的下标操作_第二周内容盘点.mp4 127.32M
- day13
- RSS解析作业
- day13_1.词频统计_单词查询作业讲解.mp4 415.29M
- day13_2.继承的介绍_访问权限的探究.mp4 250.60M
- day13_3.单继承结构下对象的创建销毁_成员的隐藏.mp4 337.67M
- day13_4.多继承结构的二义性问题.mp4 289.66M
- day13_5.基类与派生类转换_派生类对象的复制控制.mp4 349.48M
- day13_6.RSS解析作业.mp4 173.06M
- day14
- day14_1.作业讲解_多态的介绍.ev4 310.18M
- day14_1.作业讲解_多态的介绍.mp4 310.17M
- day14_2.虚函数机制.ev4 307.50M
- day14_2.虚函数机制.mp4 307.49M
- day14_3.虚函数的各种调用情况_纯虚函数.ev4 346.40M
- day14_3.虚函数的各种调用情况_纯虚函数.mp4 346.40M
- day14_4.抽象类_虚析构函数.ev4 375.78M
- day14_4.抽象类_虚析构函数.mp4 375.77M
- day14_5.验证虚表_带虚函数的多继承.ev4 217.94M
- day14_5.验证虚表_带虚函数的多继承.mp4 217.93M
- day15
- TextQuery
- day15_1.作业讲解_复习.mp4 336.38M
- day15_2.带虚函数的多继承内存布局.mp4 394.71M
- day15_3.虚拟继承与虚函数的内存布局_RSS作业讲解.mp4 438.04M
- day16
- day16_1.模板的介绍_函数模板的简单使用.mp4 326.71M
- day16_2.模板特化_模板参数类型.mp4 286.87M
- day16_3.成员函数模板_类模板_可变参数模板.mp4 300.40M
- day16_4.移动构造_移动赋值函数.mp4 323.05M
- day16_5.移动语义.mp4 257.99M
- day17
- CppBase总结.xmind 228.95kb
- day17_1.作业讲解_资源管理思想.mp4 356.45M
- day17_2.RAII_auto_ptr_unique_ptr基本使用.mp4 419.86M
- day17_3.shared_ptr_weak_ptr基本使用_循环引用问题.mp4 419.15M
- day17_4.删除器_智能指针的误用.mp4 324.14M
- day17_5.智能指针的误用_复习盘点.mp4 305.12M
- day18
- 序列式容器.assets
- day18_1.1.作业讲解(片段).mp4 20.46M
- day18_1.2.作业讲解_STL六大组件介绍_序列式容器初始化与遍历.mp4 440.59M
- day18_2.vector源码阅读_deque源码阅读.mp4 503.50M
- day18_3.deque原理_insert操作_vector迭代器失效.mp4 424.44M
- 序列式容器.md 5.58kb
- 0.C++发展概述.assets.mp4
- 1.C++与C.assets.mp4
- 10.移动语义与资源管理.assets.mp4
- 2.类与对象.assets.mp4
- 3.C++输入输出流.assets.mp4
- 4.日志系统.assets.mp4
- 5.运算符重载.assets.mp4
- 6.继承.assets.mp4
- 7.关联式容器.assets.mp4
- 8.多态.assets.mp4
- 9.模板.assets.mp4
- 0.C++发展概述.md 10.35kb
- 1.C++与C.md 59.03kb
- 10.移动语义与资源管理.md 42.07kb
- 2.类与对象.md 75.82kb
- 3.C++输入输出流.md 26.80kb
- 4.日志系统.md 16.58kb
- 5.运算符重载.md 65.99kb
- 6.继承.md 31.96kb
- 7.关联式容器.md 8.41kb
- 8.多态.md 38.99kb
- 9.模板.md 28.76kb
- C++Primer第五版.pdf 197.55M
- C++程序设计语言.第1~3部分.原书第4版.pdf 157.95M
- cppreference-zh-20211231.chm 7.88M
- Google C++ 编程规范.pdf 1.95M
- 快捷键示意.png 157.28kb
- 快捷键自动化脚本.exe 706.50kb
- 4.STL.mp4
- CppBaseDay19
- 1笔记
- 2视频
- 3离线cppreference
- 4slickedit软件
- 5自我介绍
- CppBaseDay20
- 3编程题答案
- CppBaseDay21
- 3作业答案
- CppBaseDay22
- 3gdb调试手册
- 4STL源码剖析
- CppBaseDay23
- CppBaseDay24
- 3参考源码
- STL源码
- sgi_stl
- 5._CppBoost.mp4
- 1_课件
- 1.1面向对象的设计.pdf 9.69M
- 1.2C++11线程库.pdf 967.62kb
- 2.1计算机网络.pdf 3.06M
- 2.2服务器架构模型.pdf 2.84M
- 2_软件
- StartUML5.0.7z 181.98M
- CppBoostDay01
- 1_笔记
- 2_视频
- 3_推荐书籍
- CppBoostDay02
- CppBoostDay03
- CppBoostDay04
- CppBoostDay05
- 3_所有参考代码
- ReactorV5_new.png 393.58kb
- 6_Qt
- 61Qtday01_01_自我介绍.mp4 134.39M
- 61Qtday01_02_Qt的第一个项目.mp4 139.00M
- 62Qtday01_01_自我介绍.mp4 39.33M
- 62Qtday01_02_初始Qt.mp4 62.56M
- 62Qtday01_03_设计模式下信号槽的使用.mp4 96.94M
- 62Qtday01.pdf 1.40M
- 62Qtday01.zip 9.81kb
- 62Qtday02_01_纯代码方式信号槽的使用.mp4 147.61M
- 62Qtday02_02_Qt中的数据结构.mp4 161.96M
- 62Qtday02_03_Qt中的容器1.mp4 203.11M
- 62Qtday02_04_Qt中的容器2.mp4 168.66M
- 62Qtday02_05_元对象和反射.mp4 124.24M
- 62Qtday02.pdf 1.91M
- 62Qtday02.zip 91.65kb
- 62Qtday03_01_信号槽1.mp4 158.88M
- 62Qtday03_02_信号槽2.mp4 158.24M
- 62Qtday03.pdf 1.03M
- 62Qtday03.zip 25.31kb
- 62Qtday04_01_信号槽3.mp4 153.49M
- 62Qtday04_02_信号槽4.mp4 173.56M
- 62Qtday04_03_对象树.mp4 153.35M
- 62Qtday04_04_事件1.mp4 151.06M
- 62Qtday04_05_事件2.mp4 128.00M
- 62Qtday04.pdf 2.67M
- 62Qtday04.zip 122.31kb
- 62Qtday05_01_QWidget1.mp4 149.28M
- 62Qtday05_02_QWidget2.mp4 177.91M
- … 共 430 条






