- 浏览: 588123 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
小网客:
噱头 没实际意义
【互动出版网】11.11购物狂欢节重磅大促,免费领万千优惠券 -
tongchuang123:
这是要出书了吗:o
微信控 控微信 -
韶华无限:
这也可以出本书……
玩转微信(彩印) -
zhukewen_java:
无语了。。。哪天出本《玩转QQ》?
玩转微信(彩印) -
yaying:
我只见过MySQL Cookbook中文版
jQuery Cookbook中文版
《UNIXLinux程序设计教程》
基本信息:
作者: 赵克佳 沈志宇
丛书名: 原创精品系列
出版社:机械工业出版社
ISBN:9787111403890
上架时间:2012-12-5
出版日期:2013 年1月
开本:16开
页码:1
版次:1-1
所属分类: 计算机 > 操作系统 > Linux
更多关于 》》》《UNIXLinux程序设计教程》
内容简介:
计算机书籍
《unix/linux程序设计教程》遵循最新的“统一unix规范版本4”,以linux为平台,系统地讲述了unix api各种函数的编程方法。本书内容包括unix的发展历程与标准、标准i/o和低级i/o、文件与目录操作、进程环境与进程控制、信号处理、时间与定时、终端i/o、高级i/o、进程之间的通信、套接字与网络通信、多线程编程。
《unix/linux程序设计教程》在介绍unix api各种函数的功能和用途的同时,清晰地阐述了它们所隐含的操作系统基本原理。书中给出了大量程序设计示例程序,有助于读者更好地掌握这些函数的功能、使用方法及编程技巧。
《unix/linux程序设计教程》特别适合于高等院校计算机专业的教师、高年级本科生、研究生作为教材和参考书,也特别适合从事计算机系统软件和应用软件开发的工程技术人员作为实用编程手册查阅。
目录:
《unix/linux程序设计教程》
前言
第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.1 tcp/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
发表评论
-
【互动出版网】2013双12全场科技类图书6.5折封顶
2013-12-12 16:30 1153【互动出版网】2013双12全场科技类图书6.5折封顶 ... -
C#编程兵书
2013-08-28 17:43 1218《C#编程兵书》 基本信息 作者: 张志强 胡君 丛书 ... -
C++编程兵书
2013-08-28 17:24 1233《C++编程兵书》 基本 ... -
HTML+CSS网站开发兵书
2013-08-28 17:04 1414《HTML+CSS网站开发兵书 ... -
Java编程兵书
2013-08-27 17:57 1241《Java编程兵书》 基本 ... -
网络运维与管理2013超值精华本
2013-08-27 17:44 1369《网络运维与管理2013超值精华本》 基本信息 作者: ... -
HTML5游戏开发进阶指南
2013-08-27 17:26 1334《HTML5游戏开发进阶指 ... -
ASP.NET MVC 4高级编程(第4版)
2013-08-26 17:58 1104《ASP.NET MVC 4高级编程(第4版)》 基本信息 ... -
嗨翻C语言
2013-08-26 17:40 1187《嗨翻C语言》 基本信息 作者: (美)David Gr ... -
C++ Primer中文版(第5版)
2013-08-26 17:20 1154《C++ Primer中文版(第5版) 》 基本信息 作 ... -
云计算原理与实践
2013-08-20 17:02 585《云计算原理与实践》 基本信息 作者: 游小明 罗光春 ... -
微信公众平台搭建与开发揭秘
2013-08-20 16:53 1002《微信公众平台搭建与开发揭秘》 基本信息 作者: 易伟 ... -
精通iOS开发(第5版)
2013-08-20 16:25 1048《精通iOS开发(第5版)》 基本信息 原书名:Begi ... -
企业门户(Portal)项目实施方略与开发指南
2013-08-20 16:12 976《企业门户(Portal)项目实施方略与开发指南》 基本信 ... -
Java开发手册
2013-08-20 15:56 952《Java开发手册》 基本信息 作者: 桂颖 谷涛 出 ... -
Unity3D手机游戏开发
2013-08-08 17:33 1143《Unity3D手机游戏开发》 基本信息 作者: 金玺曾 ... -
矛与盾:黑客攻防命令大曝光
2013-08-08 16:30 783《矛与盾:黑客攻防命令大曝光》 基本信息 作者: awk ... -
视觉繁美:信息可视化方法与案例解析
2013-08-08 16:10 938《视觉繁美:信息可视 ... -
精益设计: 设计团队如何改善用户体验
2013-08-08 15:55 776《精益设计: 设计团队如何改善用户体验》 基本信息 原书 ... -
云计算与OpenStack(虚拟机Nova篇)
2013-08-08 15:19 956《云计算与OpenStack(虚拟机Nova篇)》 基本信 ...
相关推荐
这本书是非常经典的程序设计书籍,对于linux学习者来说是非常有用的,可以说是必读经典
《Unix程序设计教程源码》是一本针对初学者与进阶者精心编写的教程,旨在帮助读者深入理解和掌握Unix系统下的程序设计。该教程与经典的《Unix高级环境编程》相媲美,涵盖了从基础概念到高级技巧的广泛内容。通过学习...
经典绝版教材!【作者】 赵克佳 沈志宇 赵慧!CSDN上有别人传过,但是一个压缩包有问题,一个不能下载!所以上传个好不容易找到的!
这份"Unix程序设计详细PPT和复习资料"包含了丰富的学习内容,涵盖了Unix的基础知识、系统调用、文件操作、进程管理、网络编程等多个方面。 1. **Unix基础知识**:Unix是由贝尔实验室开发的操作系统,它的哲学强调...
unix-linux编程实践教程.pdf 这本书其实用来入门Linux程序设计是很有帮助的,书上有很多Linux命令的具体实现,讲解模式是先引出问题,然后分析,最后自己编码实现那些命令,比如who,cat等命令,还有编写简易版的...
Unix/Linux系统编程是计算机科学与技术的基础,通过学习Unix/Linux编程,可以掌握Unix系统命令的实现方法,理解Unix/Linux的工作原理,并具备编制Unix/Linux应用程序的能力。这种编程能力对于计算机相关专业的教育...
UNIX Linux实验教程 5实验五Linux多线程程序设计 本资源是关于UNIX Linux实验教程的第五实验,主要讲解Linux多线程程序设计的知识点。该实验的目的是让学生加深对线程概念的理解,并掌握使用 POSIX 线程机制进行多...
《UNIX/Linux环境程序设计基础》 实验二的目标旨在让学生掌握在Linux环境下进行程序设计的基础技能,包括使用编辑工具、理解shell编程以及运用GNU gcc/gdb等工具。在Linux环境中,有多种文本编辑器可供选择,如vi、...
《Unix-Linux编程实践教程》是由杨宗源翻译的一本权威技术书籍,旨在帮助读者深入理解和掌握Unix与Linux操作系统下的编程技术。这本书的扫描版在CSDN等平台被广泛分享,为那些对Unix和Linux系统编程感兴趣的读者提供...
《Unix-Linux编程实践教程》是一本专注于系统开发编程的书籍,主要涵盖了Unix和Linux操作系统下的编程技术。作为程序员或系统管理员,理解Unix和Linux的底层机制是至关重要的,因为这两种操作系统广泛应用于服务器端...
《UNIX和Shell程序设计权威教程》是一本深入探讨UNIX操作系统及其Shell编程的宝贵资源。这本书旨在帮助读者理解和掌握UNIX系统的基础以及如何利用Shell脚本来自动化日常任务,提升工作效率。UNIX是一种强大的多用户...
unix程序设计方面,国内为数不多的经典好书!此书已经绝版,在此给大家分享!此书共有三个压缩包 【作 者】赵克佳 沈志宇 赵慧 [同作者作品] [作译者介绍] 【丛 书 名】 Linux/UNIX开发与应用系列 【出 ...
在编程方面,C语言是Unix和Linux的主要开发语言,两者都支持POSIX标准,使得在Unix下编写的程序可以轻松移植到Linux平台。 在系统管理方面,Unix和Linux都使用类似于bash的shell作为命令解释器,用户可以通过命令行...
### UNIX & LINUX 大学教程重点整理 #### 第一章:UNIX 的起源与发展 1. **UNIX 的诞生** - **时间与开发者**:UNIX 操作系统首次亮相是在 1969 年,由 AT&T 贝尔实验室的 Ken Thompson 开发。 - **意义**:...
Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus ...Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
《UNIX、Linux编程实践教程》是一本深入探讨操作系统核心,并且着重于编程实践的书籍。在UNIX和Linux的世界里,这两个开源操作系统不仅历史悠久,而且在技术领域保持着强大的影响力。本书旨在帮助读者理解这两种系统...
源码是理解任何程序设计思想的关键,通过分析这些源码,我们可以学习到许多实用的编程技巧和最佳实践。 首先, UNIX/Linux编程的核心是C语言,因为这两种系统的API主要是用C语言设计的。源码中可能会包含大量与系统...
本书《Unix和Shell程序设计权威教程》深入浅出地介绍了这两个主题,为学习者提供了丰富的知识资源。 Unix操作系统是最早由Ken Thompson、Dennis Ritchie等人在贝尔实验室开发的一种多用户、多任务的操作系统。它以...
Linux系统程序设计是计算机科学与技术中的一项重要技能,尤其在开源领域具有极高的实用价值和广泛应用。海同的内部培训教材系统性地介绍了Linux系统编程的各个重要方面,旨在帮助初学者和有一定基础的开发者能够理解...
6. **线程编程**:多线程是现代程序设计的常见模式,理解和使用pthread库进行线程管理,如线程创建、同步(互斥锁、条件变量)、通信(线程间信号)等。 7. **内存管理**:了解动态内存分配(malloc、calloc、...