UNIX/Linux程序设计教程PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:赵克佳,沈志宇编著
- 出 版 社:北京:机械工业出版社
- 出版年份:2013
- ISBN:9787111403890
- 页数:484 页
第1章UNIX导论 1
1.1 UNIX简史 1
1.1.1 UNIX的诞生 1
1.1.2 UNIX的早期发展 2
1.1.3 BSD UNIX 3
1.1.4系统V UNIX 3
1.1.5 UNIX的商业化 4
1.1.6 Linux 4
1.2标准 5
1.2.1 SVID 5
1.2.2 POSIX 6
1.2.3统一UNIX规范 6
1.2.4 C标准 8
1.3 UNIX基本概念 8
1.3.1程序和进程 8
1.3.2内核 9
1.3.3 shell 10
1.3.4用户名与用户ID、用户组与组ID 11
1.3.5特权用户 12
1.3.6系统调用与库函数 12
1.4系统库 13
1.4.1头文件 14
1.4.2保留字 14
1.4.3特征测试宏 15
1.5示例程序和编译环境 16
1.6错误处理 17
1.7系统信息 19
1.7.1机器标识 19
1.7.2硬件/软件类型识别 19
1.8系统能力限制 20
1.8.1一般能力限制值 21
1.8.2系统和文件特征选项 22
1.8.3 sysconf()、 pathconf()和fpathconf()函数 23
1.9思考与练习 27
第2章 标准输入输出 28
2.1 UNIX输入输出基本概念 28
2.2流和FILE对象 30
2.3打开和关闭流 31
2.4读和写流 33
2.4.1字符I/O 33
2.4.2行I/O 34
2.4.3读回退 37
2.4.4块I/O 38
2.5文件定位 40
2.6文件结束和错误指示器 42
2.7流缓冲 43
2.8格式I/O 46
2.8.1格式输出 47
2.8.2格式输入 50
2.9临时文件 53
2.10思考与练习 55
第3章 低级输入输出 56
3.1文件描述字的打开、创建和关闭 56
3.2 read()和write()函数 60
3.3设置描述字的文件位置 61
3.4 dup()和dup2()函数 64
3.5 fdopen()和fileno() 函 函数 65
3.6文件控制函数fcntl() 65
3.6.1重复文件描述字 66
3.6.2文件描述字标签 67
3.6.3文件状态标签 68
3.7非阻塞I/O 71
3.8 readv()和writev()函数 73
3.9 fsync()和fdatasync()函数 74
3.10思考与练习 75
第4章 文件与目录 77
4.1文件 77
4.1.1 stat()、 fstat()和lstat()函数 78
4.2文件类型 79
4.2.1普通文件 79
4.2.2目录 80
4.2.3链接与link()函数 80
4.2.4符号链接与symlink()和readlink()函数 82
4.2.5特别文件 83
4.2.6测试文件的类型 84
4.3文件的属主和用户组 85
4.3.1 chown() 、 fchown()和lchown()函数 86
4.4文件方式 87
4.4.1文件访问权限 88
4.4.2调整用户ID和调整组ID 89
4.4.3 sticky位 90
4.4.4文件方式位小结 91
4.5确定和改变文件方式 92
4.5.1 umask()函数 92
4.5.2 chmod()和fchmod()函数 94
4.5.3 access()函数 94
4.6文件大小 96
4.6.1截断文件 97
4.7文件时间 99
4.7.1 utime()和utimes()函数 99
4.8文件的删除与换名 101
4.8.1删除文件和目录 101
4.8.2文件换名 103
4.9目录操作 104
4.9.1工作目录 104
4.9.2创建目录 105
4.9.3读目录流 106
4.9.4对目录流的随机访问 109
4.10思考与练习 109
第5章 进程环境 111
5.1 main()函数 111
5.2命令行参数 111
5.2.1命令行参数的语法约定 112
5.2.2扫描命令行中的选项 113
5.3环境变量 115
5.3.1环境表 116
5.3.2访问环境 117
5.4终止进程 118
5.4.1出口状态 119
5.4.2终止前的清理 119
5.4.3流产程序 120
5.5进程的存储空间 121
5.5.1进程的地址空间 122
5.5.2动态存储分配与释放 123
5.5.3释放分配的存储单元 126
5.6 setjmp()和longjmp()函数 127
5.7进程资源 130
5.7.1查看与设置资源限制 131
5.7.2资源使用统计 132
5.8用户信息 133
5.8.1用户名 133
5.8.2用户数据库 134
5.8.3组数据库 136
5.9进程的身份凭证 139
5.10调整进程的身份 141
5.11思考与练习 146
第6章 进程控制 147
6.1进程标识 147
6.2进程创建 148
6.3执行一个新程序 151
6.4等待进程完成 155
6.5进程终止与僵死进程 159
6.6 system()函数 163
6.7进程组 164
6.8会晤期 165
6.9控制终端 166
6.10作业控制 168
6.11思考与练习 174
第7章 信号处理 175
7.1信号概念 175
7.2 UNIX信号 177
7.2.1程序错误类信号 179
7.2.2程序中止类信号 180
7.2.3闹钟类信号 180
7.2.4 I/O类信号 180
7.2.5作业控制类信号 181
7.2.6操作错误类信号 181
7.2.7其他信号 182
7.3生成信号 182
7.3.1 raise()函数 182
7.3.2 kill()函数 183
7.4设置信号的动作 184
7.4.1 signal()函数 184
7.4.2进程初启时的信号动作 186
7.4.3不可靠信号 187
7.4.4 sigaction()函数 188
7.5信号句柄 191
7.5.1正常返回的信号句柄 192
7.5.2终止进程的句柄 192
7.6阻塞信号 193
7.6.1 sigset t类型和信号集操作 193
7.6.2设置信号屏蔽 194
7.6.3检查悬挂信号 196
7.7等待信号 197
7.7.1 pause()函数 197
7.7.2 sigsuspend()函数 198
7.8使用分开的信号栈 201
7.9信号句柄编程技巧 204
7.9.1句柄内非局部控制转移 204
7.9.2可重入函数与异步信号安全函数 207
7.9.3被信号中断的系统调用 210
7.9.4原子数据 211
7.10实时信号 212
7.10.1 SA SIGINFO标志 213
7.10.2发送实时信号 217
7.10.3等待实时信号 219
7.11思考与练习 221
第8章 时间与定时 222
8.1系统时钟 222
8.1.1 time()函数 222
8.1.2 gettimeofday()函数 223
8.2时间格式转换 224
8.2.1分解的日历时间 224
8.2.2格式化日期与时间 227
8.3 CPU时间与墙钟时间 229
8.3.1 clock()函数 230
8.3.2 times()函数 231
8.4睡眠与定时 233
8.4.1 sleep()函数 233
8.4.2设置定时器 233
8.5实时时钟与定时 237
8.5.1实时时钟 238
8.5.2实时睡眠 240
8.5.3实时定时器 241
8.5.4创建和删除实时定时器 241
8.5.5设置实时定时器 243
8.5.6定时器超期计数 244
8.6思考与练习 246
第9章 终端I/O 247
9.1需要改变终端设置的例子 247
9.2终端I/O概述 249
9.2.1终端 249
9.2.2串行端口 250
9.2.3终端设备文件 252
9.2.4输入输出队列 252
9.2.5加工和非加工输入方式 253
9.3 GTI控制接口 254
9.3.1 termios数据结构 254
9.3.2 GTI控制函数 255
9.4终端属性 256
9.4.1输入方式 256
9.4.2输出方式 257
9.4.3控制方式 258
9.4.4局部方式 259
9.4.5特殊字符 260
9.4.6 stty命令 263
9.5终端标识 263
9.6改变终端属性 265
9.7加工方式与非加工方式输入 266
9.7.1加工方式输入 266
9.7.2非加工方式输入 267
9.8设置波特率 272
9.9行控制函数 273
9.10串行端口程序设计 275
9.11思考与练习 278
第10章 高级I/O 279
10.1文件锁 279
10.1.1 fcntl()文件操作 280
10.1.2锁的测试、请求和释放 282
10.1.3文件锁与进程和文件的关系 286
10.1.4死锁 287
10.1.5建议锁与强制锁 288
10.2信号驱动的I/O 289
10.3多路转接I/O 291
10.3.1 select()函数 291
10.3.2 poll()函数 294
10.4异步I/O 296
10.4.1异步I/O控制块 297
10.4.2 I/O完成时的信号交付 298
10.4.3异步I/O的优先级 299
10.4.4异步I/O函数 299
10.4.5异步I/O之例 304
10.4.6异步I/O注意事项 307
10.5存储映射I/O 308
10.6思考与练习 314
第11章 进程间通信 316
11.1管道 316
11.1.1创建管道 317
11.1.2父子进程间的管道通信 317
11.1.3连接标准输入和标准输出的管道 319
11.1.4 popen()和pclose()函数 321
11.1.5管道I/O的原子性 322
11.2 FIFO特别文件 323
11.2.1创建FIFO 323
11.2.2 FIFO操作 325
11.2.3 FIFO用于客户/服务通信 328
11.3系统V IPC 331
11.3.1关键字和标识 332
11.3.2 IPC资源描述结构与成员ipc-perm 333
11.3.3 ipcs和ipcrm命令 334
11.4消息队列 334
11.4.1创建和获得消息队列 336
11.4.2消息队列的查询、设置和删除 337
11.4.3发送和接收消息 339
11.5共享存储段 343
11.5.1创建和获得共享存储段 343
11.5.2共享存储段的查询、设置和删除 344
11.5.3共享存储段的连接和分离 345
11.6信号量 347
11.6.1创建和获得信号量标识 348
11.6.2信号量的查询、设置和删除 350
11.6.3信号量操作 352
11.7思考与练习 357
第12章 套接字与网络通信 358
12.1TCP/IP协议 358
12.2套接字 360
12.3套接字地址结构 364
12.3.1 IP地址 364
12.3.2域名地址 366
12.3.3服务与端口号 369
12.3.4套接字地址数据结构 371
12.3.5字节顺序 373
12.4命名套接字 374
12.5套接字通信模式 377
12.6流套接字操作 379
12.6.1请求连接 379
12.6.2接收连接 381
12.6.3 getsockname()和getpeername()函数 385
12.6.4多客户服务 386
12.6.5 send()和recv()函数 388
12.7套接字选项 390
12.8带外数据 392
12.8.1 TCP带外数据 392
12.8.2带外数据的发送和接收 393
12.8.3带外数据标志 397
12.9数据报套接字操作 399
12.9.1 sendto()和recvfrom()函数 399
12.9.2数据报套接字客户/服务之例 400
12.9.3使用connect()函数 403
12.10超时处理 404
12.11思考与练习 405
第13章 线程 406
13.1线程概念 406
13.1.1什么是线程 406
13.1.2线程的好处 409
13.1.3 Pthreads线程 412
13.1.4线程标识 413
13.2创建线程 414
13.3终止线程 415
13.3.1等待线程终止 416
13.3.2可汇合与分离的线程 418
13.4创建特殊属性的线程 420
13.5互斥变量 425
13.5.1互斥变量的初始化和销毁 427
13.5.2互斥变量属性 428
13.5.3互斥变量的加锁与解锁 431
13.5.4互斥变量与spin锁 433
13.6读写锁 435
13.6.1读写锁的初始化和销毁 435
13.6.2读写锁的上锁与解锁 436
13.7条件变量 439
13.7.1创建和销毁条件变量 441
13.7.2条件变量属性 441
13.7.3等待条件变量 443
13.7.4唤醒条件变量等待 445
13.8思考与练习 448
第14章 线程高级特征 450
14.1线程专有数据 450
14.1.1线程专有数据键的创建和删除 451
14.1.2使用线程专有数据 454
14.2取消线程 456
14.2.1线程的可取消属性 457
14.2.2取消线程与取消点 458
14.2.3异步取消的安全性 461
14.2.4现场清理 462
14.3线程调度 464
14.3.1线程调度竞争范围 465
14.3.2调度策略与优先级 467
14.3.3线程调度属性 469
14.3.4动态改变线程的调度策略和优先级 471
14.4线程与信号 474
14.4.1信号动作 474
14.4.2信号屏蔽 475
14.4.3向线程发送信号 476
14.4.4等待信号 477
14.4.5一种新的事件通知方法:SIGEV THREAD 480
14.5思考与练习 483
参考文献 484
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《AutoCAD 2019 循序渐进教程》雷焕平,吴昌松,陈兴奎主编 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《英语自学进阶教程全6册 3》爱尔兰迪尔德丽出版社著 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019