新書推薦:
《
律令国家与隋唐文明
》
售價:HK$
74.8
《
紫云村(史杰鹏笔下大唐小吏的生死逃亡,新历史主义小说见微之作,附赠5张与小说内容高度契合的宣纸彩插)
》
售價:HK$
101.2
《
现代吴语的研究(中华现代学术名著3)
》
售價:HK$
66.7
《
天下的当代性:世界秩序的实践与想象(新版)
》
售價:HK$
79.4
《
德国天才4:断裂与承续
》
售價:HK$
112.7
《
妈妈的情绪,决定孩子的未来
》
售價:HK$
43.7
《
推拿纲目
》
售價:HK$
414.0
《
精致考古--山东大学实验室考古项目论文集(一)
》
售價:HK$
250.7
|
內容簡介: |
CDIO工程教育是面向产品、过程、系统生命周期的工程教育方法。它以工程职业实践环境作为工程教育环境 :培养学生的工程能力、职业道德、学术知识和运用知识解决问题能力、终生学习能力、团队工作能力、交流能力和大系统掌控能力 ;使其能够在现代团队的环境下 ,构思、设计、实施、运行复杂和具有高附加值的工程产品、过程和系统。在基于 CDIO的工程教育中 ,不仅注重知识的学习 ,更加强调以项目为核心的全方位能力的培养。
本教材以一个基于 Linux的网络传输系统项目为例 ,作为主线贯穿始终 ,介绍了 Linux系统开发的相关知识以及完成该工程项目的技能。本教材主要针对具有一定的 C语言编程基础,并了解 Linux基本操作的读者 ,可供本科高年级学生自学使用 ,也可以作为相关工程技术人员和计算机爱好者学习 Linux系统编程的参考教材。
|
目錄:
|
第1章 Linux操作系统基础 3
1.1 UNIXLinux操作系统简介 3
1.1.1 UNIX发展历史 3
1.1.2 UNIX体系结构 4
1.1.3 Linux操作系统发展历史 5
1.1.4 Linux的版本 6
1.1.5 Linux操作系统特点 7
1.2相关术语 8
1.2.1操作系统 8
1.2.2多用户系统 8
1.2.3用户和组 9
1.2.4进程 9
1.2.5文件 10
1.2.6硬链接和符号链接 10
1.2.7文件类型 10
1.2.8文件描述符与索引节点 10
1.3库函数与系统调用 10
1.4 Linux常用命令 11
1.4.1用户和用户组 12
1.4.2文件和目录 13
1.4.3进程 16
1.4.4获取帮助信息 17
1.5项目 :SSH终端及登录 19
1.5.1项目分析及设计 19
1.5.2项目实施 19
1.5.3项目运行 21
第2章 Linux平台项目开发环境 25
2.1编辑器 Vi 25
2.1.1 Vi的工作模式 26
2.1.2 Vi的基本用法 27
2.1.3 Vi的高级用法 27
2.2编译器 GCC 29
2.2.1 GCC编译器介绍 29
2.2.2 GCC编译器基本用法 30
2.3 make及 Makefile 33
2.3.1 Makefile 33
2.3.2 Makefile文件的命名 34
2.3.3 Makefile文件的调用 34
2.3.4 Makefile文件的内容 34
2.3.5 make命令的特殊用法 38
2.4调试器 GDB 38
2.4.1输出语句调试方法 39
2.4.2 GDB工具调试 39
2.5库 42
2.5.1库的基本概念 42
2.5.2静态库和共享库的创建与使用 43
2.6项目:Linux系统 C编程实践 45
2.6.1项目分析及设计 45
2.6.2项目实施 46
2.6.3项目编译及运行 48
第3章 Linux程序设计初步 50
3.1程序及进程的存储结构 50
3.2变量的类型修饰符 52
3.3命令行参数 54
3.4环境变量 56
3.4.1 Shel变量 56
3.4.2环境变量访问命令 57
3.4.3环境变量访问函数 58
3.5时间管理 60
3.6错误代码 63
3.7项目:设置环境变量 67
3.7.1项目设计 67
3.7.2项目实施 68
3.7.3项目编译与运行 68
第4章文件IO 70
4.1文件系统简介 70
4.1.1 UNIXLinux文件系统概述 71
4.1.2 VFS虚拟文件系统 73
4.1.3索引节点 inode 73
4.1.4文件的类型 73
4.1.5文件的访问权限 75
4.2访问文件的内核数据结构 77
4.3文件基本 IO操作 78
4.3.1打开 创建文件 opencreat 78
4.3.2读文件 83
4.3.3写文件 84
4.3.4文件定位 86
4.3.5关闭文件 87
4.3.6文件操作举例 88
4.4文件访问的同步 91
4.5项目 :文件复制命令的实现 92
4.5.1项目分析与设计 92
4.5.2项目实施 93
4.5.3项目编译与运行 95
第5章文件属性管理 98
5.1获取文件属性 98
5.2用户 组ID与名字的转换 100
5.3硬链接与符号链接 102
5.3.1硬链接与符号链接的区别 102
5.3.2相关的系统调用函数 103
5.4 dupdup2 104
5.4.1输入输出重定向 104
5.4.2 dupdup2函数 105
5.5文件属性的修改 106
5.5.1修改文件属性 106
5.5.2改变文件属主及组 chownfchownlchown 107
5.5.3改变文件访问权限 chmodfchmod 109
5.5.4改变文件时间 utime 109
5.5.5改变文件长度 truncateftruncate 110
5.6项目 :显示文件长格式信息 110
5.6.1项目分析与设计 110
5.6.2项目实施 111
5.6.3项目编译与运行 114
第6章目录文件管理 117
6.1目录基本操作 117
6.1.1打开目录 117
6.1.2读目录 118
6.1.3关闭目录 119
6.2目录其他操作 120
6.2.1改变当前目录 120
6.2.2创建目录 121
6.2.3删除目录 121
6.2.4目录指针定位 121
6.3项目:显示指定目录下文件列表 122
6.3.1项目分析与设计 122
6.3.2项目实施 123
6.3.3项目编译与运行 127
第7章进程控制 129
7.1什么是Shel 129
7.1.1用户登录 Shel129
7.1.2 Shel执行命令 130
7.2进程基本概念 131
7.2.1进程标识ProcesID 131
7.2.2用户标识 132
7.3进程控制相关函数 134
7.3.1创建进程 134
7.3.2 exec*函数 139
7.3.3进程终止 142
7.3.4等待进程结束 144
7.3.5 system函数 150
7.4项目:实现简单的Shel152
7.4.1项目分析与设计 152
7.4.2项目实施 153
7.4.3项目编译与运行 155
第8章线程 157
8.1线程概念 157
8.2线程基本操作 158
8.3线程间通信 163
8.4项目:线程实例 167
8.4.1项目分析与设计 167
8.4.2项目实施 168
8.4.3项目编译与运行 170
第9章信号与管道 174
9.1信号 174
9.1.1信号的概念 174
9.1.2信号的产生 174
9.1.3信号的响应方式 179
9.1.4 slep和 pause 182
9.1.5信号集 185
9.2管道 195
9.2.1管道基本概念 195
9.2.2 FIFO 202
第10章进程间通信IPC 206
10.1 System VIPC介绍 206
10.2 System V信号量 208
10.3 System V共享内存 210
10.4 System V消息队列 215
第11章网络编程 224
11.1网络编程基本概念 224
11.1.1常用网络相关命令和配置文件 224
11.1.2软件体系结构 228
11.1.3网络协议及 OSI参考模型 230
11.1.4 IP地址和端口 233
11.1.5字节顺序 235
11.1.6网络数据传输方式 238
11.2套接字编程基础 239
11.2.1套接字简介 239
11.2.2套接字地址结构 240
11.2.3面向连接套接字通信过程 242
11.2.4面向无连接套接字通信过程 243
11.3套接字编程相关函数 244
11.3.1 socket 244
11.3.2 bind 245
11.3.3 listen 246
11.3.4 acept 246
11.3.5 connect 247
11.3.6 send 248
11.3.7 recv 248
11.3.8 close 249
11.3.9 sendto 249
11.3.10 recvfrom 250
11.4项目:基于网络的进程间通信 251
11.4.1项目分析与设计 251
11.4.2项目实施 252
11.4.3项目运行 255
11.5基于 UDP的网络编程 257
11.6域名解析 261
11.6.1域名概述 261
11.6.2 IP地址形式转换 263
11.6.3 IP地址与主机名 265
第12章 Linux网络传输系统 272
12.1项目构思 272
12.2项目设计 273
12.3项目实施 275
12.4项目运行 280
附录 A Linux主要的系统调用 283
附录 B标准 290
附录 C ASCI码 293
附录 D教学建议 295
参考文献 303
|
內容試閱:
|
教材主要特点
1以项目为核心,以 CDIO工程教育理念为指导思想。不仅介绍基于 Linux系统进行程序设计的相关知识 ,还注重 Linux工程项目能力的训练。
2本教材的内容包括知识讲解和技能训练 ,并以项目为核心 ,将知识与技能有机地结合在一起。教材以一个典型的 Linux系统工程项目为主线贯穿始终展开各部分的知识。在每一章中除了介绍相关知识外 ,又辅以若干个小项目的训练 ,将知识转化为解决问题的技能。
3以多年开发与教学经验为基础。编者具有多年讲授 Linux程序设计相关课程的经历 ,积累了不少教学与开发的经验。
4本教材内容与Linux系统内核相结合。要掌握基于 Linux系统的程序设计 ,就需要对 Linux系统的内核有所了解。例如在学习 Linux文件相关程序的开发时 ,如果了解了 Linux文件系统的管理机制 ,尤其是管理文件的内核数据结构 ,就可以深入理解文件访问、管理的原理 ,就可以做到编写程序时不仅 “知其然 ”,而且还 “知其所以然 ”。
5本教材中包括基本知识、知识验证、创新能力等内容。其中 :
【基本知识】主要介绍 Linux系统程序设计的核心工程基础知识 ;
【知识验证】主要是在学习了基本知识之后 ,对基本知识的验证 ;
【创新能力】主要是在基本知识学习的基础上进行进一步的思考。
|
|