图书介绍

UNIX/Linux程序设计教程2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

UNIX/Linux程序设计教程
  • 赵克佳,沈志宇编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111403890
  • 出版时间:2013
  • 标注页数:484页
  • 文件大小:218MB
  • 文件页数:495页
  • 主题词:UNIX操作系统-程序设计-教材;Linux操作系统-程序设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

UNIX/Linux程序设计教程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章UNIX导论1

1.1 UNIX简史1

1.1.1 UNIX的诞生1

1.1.2 UNIX的早期发展2

1.1.3 BSD UNIX3

1.1.4系统V UNIX3

1.1.5 UNIX的商业化4

1.1.6 Linux4

1.2标准5

1.2.1 SVID5

1.2.2 POSIX6

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 shell10

1.3.4用户名与用户ID、用户组与组ID11

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/O33

2.4.2行I/O34

2.4.3读回退37

2.4.4块I/O38

2.5文件定位40

2.6文件结束和错误指示器42

2.7流缓冲43

2.8格式I/O46

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/O71

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和调整组ID89

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/O247

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/O279

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/O289

10.3多路转接I/O291

10.3.1 select()函数291

10.3.2 poll()函数294

10.4异步I/O296

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/O308

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创建FIFO323

11.2.2 FIFO操作325

11.2.3 FIFO用于客户/服务通信328

11.3系统V IPC331

11.3.1关键字和标识332

11.3.2 IPC资源描述结构与成员ipc-perm333

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 THREAD480

14.5思考与练习483

参考文献484

热门推荐