课程培训
红帽企业 Linux 开发培训课程

课程提纲:

GCC — GNU 编译器系列

  • * GNU 编译器系列 (GCC)

  • GCC 的历史

  • GCC 的四个阶段

  • 中断编译器

  • 编译 C 程序

  • 预处理器功能

  • 预定义的处理器符号

  • 警告和扩展

  • 优化

  • 链接

使用 Make 构建软件

  • make(1) 简介

  • make 如何工作

  • Makefile 规则语法

  • 示例:Makefile 首要步骤

  • 改进的 Makefile

  • 隐含规则

  • 示例:Makefile 越简单越好

  • 变量

  • 定义变量

  • 示例:使用变量的 Makefile

  • 自动变量

  • 特殊目标

  • 定义有用的 Phony 目标

GNU C 库和系统调用

  • 库目标

  • 库标准

  • GNU C 库 - glibc

  • 库函数与系统调用

  • 使用系统调用

  • 使用 errno 处理错误

  • errno 的意义

  • 使用 strace

程序参数和环境

  • 程序启动

  • 使用 argc/argv

  • 使用 getopt() 处理选项

  • 使用 getopt_long() 处理选项

  • 环境

  • 操作环境

  • 程序退出

  • 注册退出处理程序

构建库

  • 为何使用库?

  • 静态与共享

  • 静态库优点

  • 共享库优点

  • 创建静态库

  • 使用静态库

  • 创建共享库

  • 使用共享库

  • 共享库管理

  • 库位置

  • ld 配置

时间函数

  • 时间何时开始?

  • 时间数据类型

  • 确定实际时间

  • 转换 time_t

  • 转换 tm 结构

  • 进程时间

  • 时间算法

  • 辅助分辨率计时器

  • 精细粒度计时器

  • 实时时钟 (RTC)

进程管理

  • 什么是进程

  • 进程关系

  • 创建子进程

  • 执行其它任务

  • 相关 execve() 函数

  • 等待子进程

  • 更准确的等待

  • 更改优先级/Nice

  • 实时优先

内存操作

  • 分配/释放内存

  • 内存对齐

  • 锁定内存

  • 内存复制和初始化

  • 内存比较和搜索

调试

  • 我的程序执行什么任务?

  • 源水平调试

  • 调用 gdb

  • gdb 入门

  • 检查和更改内存

  • 调试信息库

  • 与正在运行的进程一起使用 gdb

  • 使用 gdb 检验操作系统崩溃

  • 调试库 - ElectricFence

  • 通过 valgrind 进行调试

  • 性能配置处理

基本文件操作

  • 流与系统调用

  • 打开/关闭流

  • 流输入/输出函数

  • 流状态/错误

  • 流文件定位

  • 流缓冲

  • 临时和废弃文件

  • 打开和关闭文件描述符

  • 文件描述符 I/O

  • 重新定位文件描述符

  • 流/文件描述符转换

  • 使用 ANSI I/O 的 cat

  • 使用 POSIX I/O 的 cat

通过管道沟通

  • 管道简介

  • 标准 I/O:popen()/pclose()

  • 使用 popen()/pclose()

  • 系统调用:pipe()

  • 使用pipe()

  • 命名的管道

  • 使用命名的管道

  • 进一步阅读

管理信号

  • 什么是信号

  • 阻止和检查信号

  • 处理信号集

  • 阻止信号示例

  • 使用 sigaction() 处理信号

  • sigaction() 示例

  • 使用 signal() 处理信号

  • 发送信号

  • 实时信号

使用线程进行编程

  • 线程编程简介

  • 适合线程的应用程序

  • 构建线程程序

  • 创建线程

  • 线程标识

  • 通过加入实现同步化

  • 拆分线程

  • 停止线程

  • 与 sutexes 同步

  • 使用互斥器

  • 读/和写锁

  • 条件变量

  • 使用条件变量

  • 条件变量 Gotcha

  • 进一步阅读

高级文件操作

  • 目录操作

  • 文件系统操作

  • 包含 select() 的多路复用 I/O

  • 其它 I/O 函数

  • 内存映射的 I/O

  • 使用内存映射的 I/O

  • 文件锁定

进程间通信 (IPC)

  • 进程间通信 (IPC)

  • POSIX IPC 概述

  • POSIX 共享内存

  • POSIX 旗语

  • POSIX 消息队列

  • System V IPC 概述

  • 系统 V IPC 共享内存

  • 系统 V IPC 旗语阵列

  • 系统 V IPC 消息队列

基本网络编程

  • Linux 网络连接概述

  • socket() 入门

  • 客户端函数

  • 指定 IPv4 地址

  • 主机与网络字节顺序

  • TCP/IP 客户端示例

  • 地址转换函数

  • 使用 getaddrinfo()

  • 服务器函数

  • TCP/IP 服务器示例

  • 通过 UDP 进行数据电报通信

与 Linux 社区协作

  • 接触社区

  • 一般注意事项

  • 构建社区

  • 许可证

  • GPL

  • LGPL

  • BSD

  • 知识共享




如果您想学习本课程,请预约报名
如果没找到合适的课程或有特殊培训需求,请订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表点击在线申请

服务特点:
海量专家资源,精准匹配相关行业,相关项目专家,针对实际需求,顾问式咨询,互动式授课,案例教学,小班授课,实际项目演示,快捷高效,省时省力省钱。

专家力量:
中国科学院软件研究所,计算研究所高级研究人员
oracle,微软,vmware,MSC,Ansys,candence,Altium,达索等大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关技术专业,理论素养丰富
多年实际项目经历,大型项目实战案例,热情,乐于技术分享
针对客户实际需求,案例教学,互动式沟通,学有所获
报名表下载
联系我们 更多>>

咨询电话010-62883247

                4007991916

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

 

微信号.jpg

  微信咨询

随时听讲课

聚焦技术实践

订制培训 更多>>