曙海教学优势
本课程,秉承二十一年积累的教学品质,以项目实现为导向,面向企事业项目实际需要,老师将会与您分享设计的全流程以及工具的综合使用经验、技巧。课程可定制,线上/线下/上门皆可,热线:4008699035。
曙海培训的课程培养了大批受企业欢迎的工程师。大批企业和曙海
建立了良好的合作关系,合作企业30万+。曙海培训的课程在业内有着响亮的知名度。
课程提纲:
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
知识共享