Linux C/C++开发核心技术(基于GNU工具链)最新培训目录
一、课程介绍
本课程聚焦Linux环境下C/C++开发核心技术,以GNU工具链(GCC、Make等)为基础,深度覆盖编译构建、库开发、进程线程、IO操作、网络编程、调试优化等核心模块。课程结合当前市场主流技术方向(如多核线程同步、高性能IO、容器化适配、开源协作规范等),通过理论讲解与实操演练结合的方式,帮助学员掌握Linux C/C++开发全流程技能,具备独立进行企业级Linux应用开发、故障排查与性能优化的能力,适配服务器开发、嵌入式Linux开发等岗位需求。
二、课程对象
本课程适合具备C/C++基础语法知识,希望深入学习Linux环境下C/C++开发技术的IT从业人员;适合嵌入式开发、服务器开发、后端开发工程师,以及计划转型Linux底层开发的技术人员;同时适合高校计算机相关专业学生、开源项目爱好者,需系统掌握GNU工具链使用与Linux开发核心能力的学习者。
三、核心知识点模块(按技能体系划分,贴合最新技术需求)
模块一:GNU编译器系列(GCC)核心应用与进阶
-
GNU编译器系列(GCC)概述与生态定位(支持的语言、跨平台特性、与Clang的对比)
-
GCC发展历史与版本特性(主流稳定版本特性、长期支持版本选择)
-
GCC编译四阶段深度解析(预处理、编译、汇编、链接各阶段核心任务与输出)
-
编译器中断与异常处理(编译过程中断场景、错误定位与解决方案)
-
C程序编译实操(单文件/多文件编译、目标文件与可执行文件生成)
-
预处理器核心功能(宏定义、文件包含、条件编译的灵活应用)
-
预定义处理器符号(内置宏的使用场景、自定义宏的规范)
-
编译警告与语言扩展(警告等级配置、GCC扩展语法适配与兼容性处理)
-
编译优化策略(O0-O3优化等级区别、针对性优化场景与实操)
-
链接过程详解(静态链接与动态链接原理、符号解析与重定位)
模块二:使用Make构建自动化编译系统
-
make工具简介与企业级应用场景(自动化构建优势、多平台编译适配)
-
make工作原理(依赖关系解析、增量编译机制、执行流程)
-
Makefile规则语法核心(目标、依赖、命令的编写规范与格式要求)
-
基础Makefile编写实操(单文件/多文件项目入门案例)
-
进阶Makefile优化(依赖链完善、冗余命令精简、可读性提升)
-
make隐含规则与模式规则(常用隐含规则应用、自定义模式规则)
-
极简Makefile实战(核心规则提炼、小型项目快速构建方案)
-
Makefile变量管理(普通变量、递归变量、简单变量的定义与使用)
-
自动变量应用($@、$^、$<等自动变量的场景化使用,简化规则编写)
-
特殊目标与伪目标(.PHONY目标定义、常用伪目标(all、clean、install)配置)
模块三:GNU C库(glibc)与系统调用
-
Linux系统库目标与分类(系统库、应用库、第三方库的区别与依赖关系)
-
库标准规范(POSIX标准适配、ISO C标准与glibc的兼容性)
-
GNU C库(glibc)核心特性(功能模块、版本迭代、容器化环境适配)
-
库函数与系统调用的区别与关联(调用链路、权限差异、性能对比)
-
系统调用实操(常用系统调用接口使用、参数校验与返回值处理)
-
errno错误处理机制(errno变量含义、错误码解析、自定义错误处理)
-
strace工具应用(系统调用跟踪、故障定位、调用性能分析)
模块四:程序参数解析与环境管理
-
Linux程序启动流程(内核加载、参数传递、环境初始化)
-
命令行参数处理(argc/argv结构解析、位置参数获取)
-
getopt()函数应用(短选项解析、选项参数处理)
-
getopt_long()函数进阶(长选项解析、混合选项处理实操)
-
程序运行环境(环境变量的含义、继承特性、常用环境变量)
-
环境变量操作(getenv、setenv、unsetenv函数实操与安全规范)
-
程序退出机制(正常退出与异常退出、exit()与_exit()的区别)
-
退出处理程序注册(atexit()、on_exit()函数应用,资源释放场景)
模块五:静态库与共享库构建与管理
-
库的核心价值(代码复用、模块化开发、接口隐藏、部署效率优化)
-
静态库与共享库(动态库)特性对比(加载机制、占用空间、更新成本、兼容性)
-
静态库优势与适用场景(部署便捷性、运行效率、离线环境适配)
-
共享库优势与适用场景(内存节省、热更新支持、多程序共享依赖)
-
静态库构建实操(ar工具使用、索引生成、静态库打包规范)
-
静态库使用(编译链接配置、依赖库顺序、静态链接常见问题解决)
-
共享库构建实操(编译参数配置、SONAME设置、版本管理规范)
-
共享库使用(动态链接配置、运行时依赖加载)
-
共享库系统级管理(ldconfig工具应用、库缓存更新、库路径配置)
-
库路径配置(LD_LIBRARY_PATH环境变量、系统库路径、自定义库路径适配)
-
ld链接器配置(链接脚本基础、符号导出与隐藏配置)
模块六:时间函数与计时器应用
-
Linux时间基准(Unix时间戳、纪元时间起点、时区机制)
-
核心时间数据类型(time_t、tm、struct timespec等类型解析)
-
系统时间获取(time()、gettimeofday()、clock_gettime()函数实操)
-
time_t与人类可读时间转换(localtime()、gmtime()函数应用)
-
tm结构与字符串转换(strftime()、strptime()函数格式化与解析)
-
进程时间统计(clock()函数、进程用户态/内核态时间获取)
-
时间计算算法(时间差计算、日期加减、超时判断逻辑)
-
高精度计时器应用(高分辨率时钟配置、短时延场景计时实操)
-
实时时钟(RTC)原理与访问接口(硬件时钟与系统时钟同步)
模块七:Linux进程管理与调度
-
进程核心概念(进程标识PID、进程状态、进程控制块(PCB))
-
进程关系(父子进程、兄弟进程、进程组与会话管理)
-
子进程创建(fork()、vfork()函数原理与实操,写时复制机制)
-
程序替换(execve()及其封装函数(execl、execv等)应用场景)
-
子进程等待与回收(wait()、waitpid()函数实操,僵尸进程处理)
-
精准等待机制(按PID/进程组等待、状态掩码匹配、非阻塞等待)
-
进程优先级调整(nice值与renice命令、优先级范围与调度影响)
-
实时进程调度(实时优先级配置、SCHED_FIFO/SCHED_RR调度策略)
模块八:内存操作与管理
-
动态内存分配与释放(malloc、calloc、realloc、free函数实操与安全规范)
-
内存对齐原理与应用(对齐规则、__attribute__((aligned))配置、性能影响)
-
内存锁定(mlock、mlockall函数应用,防止内存换出场景)
-
内存操作函数(memcpy、memset、memcmp、memchr函数高效使用)
-
内存泄漏与越界问题排查(常见问题场景、预防与检测技巧)
模块九:Linux程序调试与性能分析
-
程序运行行为分析(日志打印规范、运行轨迹跟踪方法)
-
源代码级调试核心(GDB调试原理、调试信息生成配置)
-
GDB调试入门(启动调试、断点设置、单步执行、变量查看)
-
GDB进阶操作(内存检查与修改、寄存器查看、函数调用栈跟踪)
-
调试信息库管理(调试符号剥离与保留、debuginfo包应用)
-
运行中进程调试(GDB附加进程、在线调试与故障定位)
-
系统崩溃调试(core dump文件生成与分析、崩溃原因定位)
-
专用调试库应用(ElectricFence内存越界检测实操)
-
Valgrind工具套件(内存泄漏检测、内存错误定位、性能分析)
-
程序性能剖析(gprof工具应用、函数执行耗时统计与优化方向)
模块十:基本文件IO操作
-
标准IO与系统调用IO区别(缓冲机制、接口差异、性能对比)
-
标准IO流操作(fopen/fclose打开与关闭、流权限配置)
-
标准IO输入输出函数(fread/fwrite、fgetc/fputc、fgets/fputs实操)
-
标准IO流状态与错误处理(ferror、feof函数应用、错误信息获取)
-
流文件定位(fseek、ftell、rewind函数应用,随机访问实操)
-
标准IO缓冲机制(全缓冲、行缓冲、无缓冲配置与优化)
-
临时文件与废弃文件管理(tmpfile、tmpnam函数应用,安全规范)
-
文件描述符操作(open/close打开与关闭、文件权限与标志配置)
-
文件描述符IO函数(read/write函数实操、返回值处理与异常场景)
-
文件描述符重定向(dup/dup2函数应用、标准输入输出重定向)
-
流与文件描述符转换(fileno、fdopen函数应用)
-
实操案例:基于ANSI IO与POSIX IO实现cat命令
模块十一:管道通信机制
-
管道核心概念(半双工通信、匿名管道与命名管道区别)
-
标准IO管道(popen/pclose函数应用、单向通信实操)
-
popen/pclose实战(命令执行结果获取、父子进程通信场景)
-
系统调用管道(pipe()函数原理、父子进程管道通信实现)
-
pipe()函数实操(数据读写、管道阻塞与非阻塞配置)
-
命名管道(FIFO)原理(文件系统节点特性、跨进程通信支持)
-
命名管道实操(mkfifo创建、读写操作、多进程通信场景)
模块十二:信号管理与处理
-
信号核心概念(信号定义、信号来源、默认处理动作)
-
信号阻塞与状态检查(sigprocmask函数应用、信号集操作)
-
信号集管理(sigemptyset、sigaddset、sigismember等函数实操)
-
信号阻塞实战案例(关键流程信号屏蔽、临界区保护)
-
sigaction()函数应用(信号处理函数注册、信号行为配置)
-
sigaction()实战(自定义信号处理逻辑、信号安全函数使用)
-
signal()函数应用(简单信号处理、兼容性注意事项)
-
信号发送(kill、raise、pthread_kill函数应用,进程/线程信号发送)
-
实时信号特性(信号排队、优先级、与标准信号区别)
模块十三:多线程编程与同步
-
线程核心概念(与进程区别、轻量级特性、内核线程与用户线程)
-
线程适用场景(CPU密集型、IO密集型应用线程化改造)
-
线程程序构建(编译链接配置、pthread库依赖)
-
线程创建与退出(pthread_create、pthread_exit函数实操)
-
线程标识(pthread_self函数、线程ID与进程ID关联)
-
线程同步之join(pthread_join函数应用、线程返回值获取)
-
线程分离(pthread_detach函数应用、分离态线程特性)
-
线程终止(pthread_cancel函数、线程取消点配置)
-
互斥锁(Mutex)同步(初始化、加锁/解锁、死锁预防)
-
读写锁同步(pthread_rwlock系列函数、读多写少场景优化)
-
条件变量同步(pthread_cond系列函数、线程间通信与等待唤醒)
-
条件变量实战与陷阱规避(虚假唤醒处理、条件判断规范)
模块十四:高级文件操作
-
目录操作(opendir/closedir打开关闭、readdir读取目录项、目录遍历)
-
文件系统操作(stat/lstat获取文件属性、文件权限修改、文件删除)
-
IO多路复用之select(文件描述符监听、多IO并发处理)
-
其他高级IO函数(poll/epoll简介、与select对比优势)
-
内存映射IO(mmap/munmap函数原理、文件映射与共享内存场景)
-
内存映射IO实操(读写操作、权限配置、性能优化)
-
文件锁定(flock、fcntl函数应用、共享锁与排他锁、并发文件访问控制)
模块十五:进程间通信(IPC)
-
IPC核心概念与分类(管道、共享内存、信号量、消息队列等)
-
POSIX IPC概述(接口规范、跨平台特性、与System V IPC对比)
-
POSIX共享内存(shm_open、shm_unlink函数应用、进程间内存共享)
-
POSIX信号量(sem_open、sem_wait/sem_post函数、同步与互斥控制)
-
POSIX消息队列(mq_open、mq_send/mq_receive函数、消息收发实操)
-
System V IPC概述(键值机制、生命周期管理、权限配置)
-
System V共享内存(shmget、shmat/shmdt函数应用)
-
System V信号量集(semget、semop函数、多资源同步控制)
-
System V消息队列(msgget、msgsnd/msgrcv函数、消息类型处理)
模块十六:基本网络编程(TCP/IP)
-
Linux网络架构概述(socket接口、TCP/IP协议栈、网络模型)
-
socket核心接口(socket函数创建、协议族与类型配置)
-
TCP客户端核心函数(connect连接服务器、数据收发流程)
-
IPv4地址配置(sockaddr_in结构、IP与端口号设置)
-
主机字节序与网络字节序转换(htons、htonl、ntohs、ntohl函数)
-
TCP客户端实战案例(连接建立、数据发送与接收、异常处理)
-
地址转换函数(inet_addr、inet_ntoa、inet_pton/inet_ntop函数)
-
getaddrinfo函数应用(地址解析、跨协议(IPv4/IPv6)适配)
-
TCP服务器核心函数(bind绑定、listen监听、accept接受连接)
-
TCP服务器实战案例(并发连接处理入门、客户端请求响应)
-
UDP数据报通信(无连接特性、sendto/recvfrom函数实操)
模块十七:与Linux开源社区协作
-
Linux开源社区生态(核心社区、子项目、协作渠道)
-
社区协作基本注意事项(沟通规范、代码提交流程、问题反馈机制)
-
开源社区建设参与(贡献代码、文档完善、Bug修复、社区讨论)
-
开源许可证核心概念(许可证分类、合规要求、版权声明)
-
主流开源许可证解析(GPL许可证(v2/v3)核心条款与义务)
-
LGPL许可证特性(库使用场景、开源与闭源兼容规则)
-
BSD许可证特性(宽松许可、商业使用规范)
-
知识共享许可证(CC许可证、文档与创意作品共享规范)
-
企业级开源项目合规实践(许可证选择、依赖管理、版权风险规避)
如果您想学习本课程,请
预约报名
如果没找到合适的课程或有特殊培训需求,请
订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表点击在线申请
服务特点:
海量专家资源,精准匹配相关行业,相关项目专家,针对实际需求,顾问式咨询,互动式授课,案例教学,小班授课,实际项目演示,快捷高效,省时省力省钱。
专家力量:
中国科学院软件研究所,计算研究所高级研究人员
oracle,微软,vmware,MSC,Ansys,candence,Altium,达索等大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关技术专业,理论素养丰富
多年实际项目经历,大型项目实战案例,热情,乐于技术分享
针对客户实际需求,案例教学,互动式沟通,学有所获