Linux系统程序设计

Linux系统程序设计 教材名称: Linux系统程序设计
ISBN号: 978-7-89436-196-7 作者: 孙斌
字数: 483千字 规格: 16开
印制时间: 2013-07-16 出版日期: 2013-07-26
定价: 39 元 样章下载: 978-7-89436-196-7Linux系统程序设计样章(加水印).pdf
购买地址:

      本教材以一个基于 Linux的网络传输系统项目为例 ,作为主线贯穿始终 ,介绍了 Linux系统开发的相关知识以及完成该工程项目的技能。本教材主要针对具有一定的 C语言编程基础,并了解 Linux基本操作的读者 ,可供本科高年级学生自学使用 ,也可以作为相关工程技术人员和计算机爱好者学习 Linux系统编程的参考教材。

 

第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.2.1操作系统 
1.2.2多用户系统 
1.2.3用户和组 
1.2.4进程
1.2.5文件 
1.2.6硬链接和符号链接 
1.2.7文件类型 
1.2.8文件描述符与索引节点 
1.3库函数与系统调用 
1.4 Linux常用命令 
1.4.1用户和用户组 
1.4.2文件和目录 
1.4.3进程 
1.4.4获取帮助信息 
1.5项目 :SSH终端及登录 
1.5.1项目分析及设计 
1.5.2项目实施 
1.5.3项目运行 
第2章 Linux平台项目开发环境 
2.1编辑器 Vi
2.1.1 Vi的工作模式 
·8· Linux系统程序设计 
2.1.2 Vi的基本用法 
2.1.3 Vi的高级用法 
2.2编译器 GCC 
2.2.1 GCC编译器介绍 
2.2.2 GCC编译器基本用法 
2.3 make及 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项目:Linux系统 C编程实践 
2.6.1项目分析及设计
2.6.2项目实施 
2.6.3项目编译及运行
第3章 Linux程序设计初步
3.1程序及进程的存储结构
3.2变量的类型修饰符
3.3命令行参数 
3.4环境变量
变量 
3.4.2环境变量访问命令
3.4.3环境变量访问函数
3.5时间管理 
3.6错误代码
3.7项目:设置环境变量 
3.7.1项目设计 
3.7.2项目实施 
3.7.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打开 /创建文件 open/creat 
4.3.2读文件 
4.3.3写文件 
4.3.4文件定位 
4.3.5关闭文件 
4.3.6文件操作举例 
4.4文件访问的同步 
4.5项目 :文件复制命令的实现
4.5.1项目分析与设计 
4.5.2项目实施 
4.5.3项目编译与运行
第5章文件属性管理
5.1获取文件属性 
5.2用户 /组ID与名字的转换 
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.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.3.1项目分析与设计 
6.3.2项目实施 
6.3.3项目编译与运行 
第7章进程控制 
7.1什么是Shel 
7.1.1用户登录 Shel
7.1.2 Shel
执行命令 
7.2进程基本概念 
7.2.1进程标识(Proces ID)
7.2.2用户标识 
7.3进程控制相关函数 
7.3.1创建进程 
7.3.2 exec*函数 
7.3.3进程终止 
7.3.4等待进程结束
7.3.5 system函数 
7.4项目:实现简单的Shel
7.4.1项目分析与设计 
7.4.2项目实施 
7.4.3项目编译与运行
第8章线程 
8.1线程概念 
8.2线程基本操作 
8.3线程间通信 
8.4项目:线程实例 
8.4.1项目分析与设计 
8.4.2项目实施 
8.4.3项目编译与运行 
第9章信号与管道
9.1信号 
9.1.1信号的概念 
9.1.2信号的产生
9.1.3信号的响应方式
9.1.4 slep和 pause 
9.1.5信号集 
9.2管道 
9.2.1管道基本概念 
9.2.2 FIFO
第10章进程间通信(IPC) 
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 ac
11.3.5 connect
11.3.6 send 
11.3.7 recv 
11.3.8 close
11.3.9 sendto 
11.3.10 recvfrom 
11.4项目:基于网络的进程间通信 
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章 Linux网络传输系统 
12.1项目构思
12.2项目设计
12.3项目实施 
12.4项目运行
附录 A Linux主要的系统调用 
附录 B标准
附录 C ASCI码
附录 D教学建议
参考文献
 
 
1、以项目为核心,以 CDIO工程教育理念为指导思想。不仅介绍基于 Linux系统进行程序设计的相关知识 ,还注重 Linux工程项目能力的训练。 
2、本教材的内容包括知识讲解和技能训练 ,并以项目为核心 ,将知识与技能有机地结合在一起。教材以一个典型的 Linux系统工程项目为主线贯穿始终展开各部分的知识。在每一章中除了介绍相关知识外 ,又辅以若干个小项目的训练 ,将知识转化为解决问题的技能。 
3、以多年开发与教学经验为基础。编者具有多年讲授 Linux程序设计相关课程的经历 ,积累了不少教学与开发的经验。 
4、本教材内容与 Linux系统内核相结合。要掌握基于 Linux系统的程序设计 ,就需要对 Linux系统的内核有所了解。例如在学习 Linux文件相关程序的开发时 ,如果了解了 Linux文件系统的管理机制 ,尤其是管理文件的内核数据结构 ,就可以深入理解文件访问、管理的原理 ,就可以做到编写程序时不仅 “知其然 ”,而且还 “知其所以然 ”。 
5、本教材中包括基本知识、知识验证、创新能力等内容。