课程培训
Linux C/C++开发核心技术(基于GNU工具链)培训

 

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,达索等大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关技术专业,理论素养丰富
多年实际项目经历,大型项目实战案例,热情,乐于技术分享
针对客户实际需求,案例教学,互动式沟通,学有所获
报名表下载
联系我们 更多>>

咨询电话010-62883247

                4007991916

咨询邮箱:soft@info-soft.cn  

 

  微信咨询

随时听讲课

聚焦技术实践

订制培训 更多>>