内容简介
第1章 Linux基础
1.1 UNIX/Linux简介
1.1.1 UNIX简介
1.1.2 UNIX体系结构
1.1.3 Linux简介
1.1.4 Linux版本说明
1.1.5 Linux特点
1.2库函数与系统调用
1.3 Linux常用命令
1.3.1用户和用户组命令
1.3.2文件和目录命令
1.3.3进程命令
1.3.4获取帮助信息
1.4案例1:通过SSH终端登录Linux系统
1.4.1分析与设计
1.4.2实施
1.4.3运行
习题
第2章 Linux系统开发环境
2.1 Vi编辑 器
2.1.1 Vi编辑 器的工作模式
2.1.2 Vi编辑 器的基本用法
2.1.3 Vi编辑 器的高级用法
2.2 GCC编译器
2.2.1 GCC编译器介绍
2.2.2 GCC编译器基本用法
2.3 Makefile文件的使用
2.3.1 Makefile文件
2.3.2 Makefile文件的命名
2.3.3 Makefile文件的调用
2.3.4 Makefile文件的内容
2.3.5 make命令的特殊用法
2.4 GDB调试器
2.4.1输出调试
2.4.2 GDB调试器
2.5库
2.5.1库相关概念
2.5.2静态库和共享库
2.6案例2:简易学生成绩计算
2.6.1分析与设计
2.6.2实施
2.6.3编译与运行
习题
第3章 Linux程序设计初步
3.1程序及进程的存储结构
3.2变量的类型修饰符
3.3命令行参数及获取
3.3.1命令行参数
3.3.2 getopt获取命令行参数
3.4环境变量
3.4.1 Shell变量
3.4.2环境变量的相关命令
3.4.3环境变量函数
3.5时间管理
3.6错误代码
3.7标准I/O与文件I/O
3.8案例3:设置环境变量
3.8.1分析与设计
3.8.2实施
3.8.3编译与运行
习题
第4章 文件I/O
4.1文件系统简介
4.1.1 UNIX/Linux文件系统概述
4.1.2虚拟文件系统(VFS)
4.1.3索引节点(inode)
4.1.4文件的类型
4.1.5文件的访问权限
4.2访问文件的内核数据结构
4.3文件基本I/O操作
4.3.1打开/创建文件
4.3.2读文件
4.3.3写文件
4.3.4文件定位
4.3.5关闭文件
4.3.6文件操作举例
4.4文件访问的同步
4.5案例4:文件复制命令的实现
4.5.1分析与设计
4.5.2实施
4.5.3编译与运行
习题
第5章 文件属性
5.1获取文件属性
5.2用户/组ID与名字的转换
5.2.1用户和组
5.2.2获取文件的用户和组的信息
5.3硬链接与符号链接
5.3.1硬链接与符号链接的区别
5.3.2相关的系统调用
5.4 dup/dup2
5.4.1输入/输出重定向
5.4.2系统调用dup/dup2
5.5文件属性的修改
5.5.1修改文件属性
5.5.2改变文件所有者及所属组chown/fchown/lchown
5.5.3改变文件访问权限chmod/fchmod
5.5.4改变文件时间utime
5.5.5改变文件长度truncate/ftruncate
5.6案例5:显示文件长格式信息
5.6.1分析与设计
5.6.2实施
5.6.3编译与运行
习题
第6章 目录文件管理
6.1目录基本操作
6.1.1打开目录
6.1.2读目录
6.1.3关闭目录
6.2目录其他操作
6.2.1切换当前目录
6.2.2创建目录
6.2.3删除目录
6.2.4目录指针定位
6.3案例6:显示指定目录下文件列表
6.3.1分析与设计
6.3.2实施
6.3.3编译与运行
习题
第7章 进程控制
7.1进程基本概念
7.1.1进程和进程控制块
7.1.2进程标识
7.1.3用户标识
7.2进程控制
7.2.1创建进程
7.2.2 exec*系列函数
7.2.3进程终止
7.2.4等待进程结束
7.2.5 system函数
7.3什么是Shell
7.3.1用户登录Shell
7.3.2 Shell执行命令
7.4案例7:实现简单的Shell
7.4.1分析与设计
7.4.2实施
7.4.3编译与运行
习题
第8章 线程
8.1线程概念
8.2线程基本操作
8.3线程间通信
8.4案例8:线程实例
8.4.1分析与设计
8.4.2实施
8.4.3编译与运行
习题
第9章 信号与管道
9.1信号
9.1.1信号的概念
9.1.2信号的产生
9.1.3信号的响应方式
9.1.4 sleep函数和pause系统调用
9.1.5信号集
9.2管道
9.2.1管道基本概念
9.2.2 FIFO
习题
第10章 进程间通信
10.1 System VIPC简介
10.2 System V信号量
10.3 System V共享内存
10.4 System V消息队列
习题
第11章 网络编程
11.1网络编程基本概念
11.1.1常用网络相关命令和配置文件
11.1.2软件体系结构
11.1.3网络协议及OSI参考模型
11.1.4 IP地址和端口
11.1.5字节顺序
11.1.6网络数据传输方式
11.2套接字编程基础
11.2.1套接字简介
11.2.2套接字地址结构
11.2.3面向连接套接字通信过程
11.2.4面向无连接套接字通信过程
11.3套接字编程相关系统调用
11.3.1系统调用socket
11.3.2系统调用bind
11.3.3系统调用listen
11.3.4系统调用accept
11.3.5系统调用coconnect
11.3.6系统调用send
11.3.7系统调用sendto
11.3.8系统调用recv
11.3.9系统调用recvfrom
11.3.10系统调用close
11.3.11系统调用shutdown
11.4案例9:基于网络的进程间通信
11.4.1分析与设计
11.4.2实施
11.4.3编译与运行
11.5基于UDP的网络编程
11.6域名解析
11.6.1域名解析
11.6.2 IP地址形式转换
11.6.3 IP地址与主机名
习题
第12章 综合案例
12.1 Linux网络传输系统
12.1.1构思
12.1.2设计
12.1.3实施
12.1.4运行
12.2简易的文件传输系统
12.2.1构思
12.2.2设计
12.2.3实施
12.2.4运行
习题
附录A Linux主要的系统调用
附录B ASCII码
参考文献