图书介绍
Linux程序设计 第3版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- Neil Matthew,Richard Stones著;陈健,宋健建译 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115159025
- 出版时间:2007
- 标注页数:694页
- 文件大小:219MB
- 文件页数:716页
- 主题词:
PDF下载
下载说明
Linux程序设计 第3版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 入门1
1.1 UNIX、Linux和GNU简介1
1.1.1 什么是UNIX1
1.1.2 什么是Linux2
1.1.3 GNU项目和自由软件基金会3
1.1.4 Linux发行版3
1.2 Linux程序设计4
1.2.1 Linux程序4
1.2.2 C语言编译器5
1.2.3 开发系统导引6
1.3 获得帮助11
1.4 小结13
第2章 shell程序设计14
2.1 为什么使用shell编程14
2.2 一点哲学15
2.3 什么是shell15
2.4 管道和重定向17
2.4.1 重定向输出17
2.4.2 重定向输入18
2.4.3 管道18
2.5 作为程序设计语言的shell19
2.5.1 交互式程序19
2.5.2 创建脚本20
2.5.3 把脚本设置为可执行21
2.6 shell的语法22
2.6.1 变量22
2.6.2 条件26
2.6.3 控制结构28
2.6.4 函数39
2.6.5 命令42
2.6.6 命令的执行57
2.6.7 here文档61
2.6.8 调试脚本程序62
2.7 迈向图形化:dialog工具63
2.8 综合应用67
2.8.1 需求67
2.8.2 设计67
2.8.3 应用程序的说明76
2.9 小结76
第3章 文件操作77
3.1 Linux文件结构77
3.1.1 目录78
3.1.2 文件和设备78
3.2 系统调用和设备驱动程序79
3.3 库函数80
3.4 底层文件访问81
3.4.1 write系统调用81
3.4.2 read系统调用82
3.4.3 open系统调用83
3.4.4 访问权限的初始值84
3.4.5 其他与文件管理有关的系统调用87
3.5 标准I/O库89
3.5.1 fopen函数90
3.5.2 fread函数91
3.5.3 fwrite函数91
3.5.4 fclose函数91
3.5.5 fflush函数92
3.5.6 fseek函数92
3.5.7 fgetc、getc和getchar函数92
3.5.8 fputc、putc和putchar函数92
3.5.9 fgets和gets函数93
3.6 格式化输入和输出93
3.6.1 printf、fprintf和sprintf函数93
3.6.2 scanf、fscanf和sscanf函数95
3.6.3 其他流函数97
3.6.4 文件流错误98
3.6.5 文件流和文件描述符98
3.7 文件和目录的维护99
3.7.1 chmod系统调用99
3.7.2 chown系统调用99
3.7.3 unlink、link和symlink系统调用99
3.7.4 mkdir和rmdir系统调用100
3.7.5 chdir系统调用和getcwd函数100
3.8 扫描目录100
3.8.1 opendir函数101
3.8.2 readdir函数101
3.8.3 telldir函数101
3.8.4 seekdir函数102
3.8.5 closedir函数102
3.9 错误处理104
3.9.1 strerror函数105
3.9.2 perror函数105
3.10 /proc文件系统105
3.11 高级主题:fcntl和mmap109
3.11.1 fcntl系统调用109
3.11.2 mmap函数110
3.12 小结112
第4章 Linux环境113
4.1 程序参数113
4.1.1 getopt115
4.1.2 getopt_long117
4.2 环境变量119
4.2.1 环境变量的用途120
4.2.2 environ变量121
4.3 时间和日期122
4.4 临时文件128
4.5 用户信息130
4.6 主机信息132
4.7 日志134
4.8 资源和限制138
4.9 小结142
第5章 终端143
5.1 对终端进行读写143
5.2 与终端进行对话147
5.3 终端驱动程序和通用终端接口149
5.3.1 概述150
5.3.2 硬件模型150
5.4 termios结构151
5.4.1 输入模式152
5.4.2 输出模式152
5.4.3 控制模式153
5.4.4 本地模式154
5.4.5 特殊的控制字符154
5.4.6 终端速度157
5.4.7 其他函数157
5.5 终端的输出160
5.5.1 终端的类型160
5.5.2 识别终端类型161
5.5.3 使用terminfo功能标志163
5.6 检测击键动作168
5.7 虚拟控制台170
5.8 伪终端171
5.9 小结171
第6章 使用curses函数库管理基于文本的屏幕172
6.1 用curses函数库进行编译172
6.2 基本概念173
6.3 初始化和重置函数175
6.4 输出到屏幕176
6.5 从屏幕读取176
6.6 清除屏幕177
6.7 移动光标177
6.8 字符属性178
6.9 键盘180
6.9.1 键盘的工作模式180
6.9.2 键盘输入181
6.10 窗口182
6.10.1 WINDOW结构182
6.10.2 通用函数183
6.10.3 移动和更新屏幕184
6.10.4 优化屏幕刷新187
6.11 子窗口187
6.12 keypad模式190
6.13 彩色显示192
6.14 pad194
6.15 CD唱片应用程序196
6.16 小结210
第7章 数据管理211
7.1 内存管理211
7.1.1 简单的内存分配211
7.1.2 分配大量的内存212
7.1.3 内存的滥用215
7.1.4 空指针216
7.1.5 内存的释放217
7.1.6 其他内存分配函数218
7.2 文件锁定219
7.2.1 创建锁文件219
7.2.2 锁定区域222
7.2.3 锁定状态下的读写操作224
7.2.4 文件锁的竞争229
7.2.5 其他锁命令233
7.2.6 死锁233
7.3 数据库234
7.3.1 dbm数据库234
7.3.2 dbm例程235
7.3.3 dbm访问函数236
7.3.4 其他dbm函数239
7.4 CD唱片应用程序241
7.4.1 更新设计241
7.4.2 使用dbm数据库的CD唱片应用程序242
7.5 小结259
第8章 MySQL260
8.1 安装260
8.1.1 预编译软件包261
8.1.2 安装后的配置262
8.1.3 安装后的故障修复265
8.2 MySQL管理266
8.2.1 命令266
8.2.2 创建用户并赋予权限269
8.2.3 密码271
8.2.4 创建数据库271
8.2.5 数据类型272
8.2.6 创建表格273
8.2.7 图形化工具275
8.3 使用C语言访问MySQL数据277
8.3.1 连接例程277
8.3.2 错误处理281
8.3.3 执行SQL语句282
8.3.4 更多的函数295
8.4 CD数据库应用程序295
8.4.1 创建表格296
8.4.2 添加数据298
8.4.3 使用C语言访问应用程序数据300
8.5 小结309
第9章 开发工具311
9.1 多个源文件带来的问题311
9.2 make命令和makefile文件312
9.2.1 makefile的语法312
9.2.2 make命令的选项和参数312
9.2.3 makefile文件中的注释315
9.2.4 makefile文件中的宏315
9.2.5 多个目标317
9.2.6 内置规则319
9.2.7 后缀和模式规则320
9.2.8 用make命令管理函数库321
9.2.9 高级主题:makefile文件和子目录322
9.2.10 GNU make和gcc323
9.3 源代码控制324
9.3.1 RCS324
9.3.2 SCCS329
9.3.3 RCS和SCCS的比较329
9.3.4 CVS330
9.3.5 gCVS333
9.3.6 BitKeeper334
9 4 编写使用手册334
9.5 发行软件337
9.5.1 patch程序337
9.5.2 其他软件发行工具339
9.6 RPM软件包341
9.6.1 使用RPM软件包文件341
9.6.2 安装RPM软件包342
9 6.3 创建RPM软件包342
9.7 其他软件包格式350
9.8 开发环境350
9.8.1 xwpe351
9.8.2 C-Forge352
9.8.3 KDevelop352
9.8.4 其他开发环境354
9.9 小结354
第10章 调试355
10.1 错误类型355
10.2 常用调试技巧356
10.2.1 有漏洞的程序356
10.2.2 代码检查358
10.2.3 取样法359
10.2.4 无需重新编译的调试技巧361
10.2.5 程序的受控执行361
10.3 使用gdb进行调试362
10.3.1 启动gdb362
10.3.2 运行一个程序363
10.3.3 栈跟踪363
10.3.4 检查变量364
10.3.5 列出程序源代码364
10.3.6 设置断点365
10.3.7 用调试器打补丁368
10.3.8 深入学习gdb369
10.4 其他调试工具369
10.4.1 lint:清理程序中的“垃圾”370
10.4.2 函数调用工具371
10.4.3 用prof/gprof产生执行记录373
10.5 断言374
10.6 内存调试375
10.6.1 ElectricFence函数库376
10.6.2 valgrind377
10.7 小结379
第11章 进程和信号380
11.1 什么是进程380
11.2 进程的结构380
11.2.1 进程表382
11.2.2 查看进程382
11.2.3 系统进程383
11.2.4 进程调度384
11.3 启动新进程385
11.3.1 替换进程映像387
11.3.2 复制进程映像389
11.3.3 等待一个进程391
11.3.4 僵尸进程393
11.3.5 输入和输出重定向394
11.3.6 线程396
11.4 信号396
11.4.1 发送信号399
11.4.2 健壮的信号接口401
11.4.3 信号集403
11.5小结407
第12章 POSIX线程408
12.1 什么是线程408
12.2 第一个线程程序410
12.3 同时执行413
12.4 同步414
12.4.1 用信号量进行同步415
12.4.2 用互斥量进行同步419
12.5 线程的属性423
12.6 取消一个线程427
12.7 多线程430
12.8 小结432
第13章 进程间通信:管道433
13.1 什么是管道433
13.2 进程管道434
13.3 将输出送往popen435
13.3.1 传递更多的数据436
13.3.2 如何实现popen437
13.4 pipe调用438
13.5 父进程和子进程441
13.5.1 管道关闭后的读操作443
13.5.2 把管道用作标准输入和标准输出443
13.6 命名管道:FIFO446
13.6.1 访问FIFO文件447
13.6.2 高级主题:使用FIFO的客户/服务器应用程序454
13.7 CD数据库应用程序457
13.7.1 目标458
13.7.2 实现459
13.7.3 客户接口函数461
13.7.4 服务器接口467
13.7.5 管道471
13.7.6 对CD数据库应用程序的总结476
13.8 小结476
第14章 信号量、共享内存和消息队列477
14.1 信号量477
14.1.1 信号量的定义478
14.1.2 一个理论性的例子478
14.1.3 Linux的信号量机制479
14.1.4 使用信号量481
14.2 共享内存485
14.2.1 shmget函数486
14.2.2 shmat函数486
14.2.3 shmdt487
14.2.4 shmctl487
14.3 消息队列491
14.3.1 msgget函数491
14.3.2 msgsnd函数492
14.3.3 msgrcv函数492
14.3.4 msgctl函数493
14.4 CD数据库应用程序496
14.5 IPC状态命令500
14.5.1 信号量500
14.5.2 共享内存500
14.5.3 消息队列500
14.6 小结501
第15章 套接字502
15.1 什么是套接字502
15.2 套接字连接502
15.2.1 套接字属性506
15.2.2 创建套接字508
15.2.3 套接字地址509
15.2.4 命名套接字509
15.2.5 创建套接字队列510
15.2.6 接受连接510
15.2.7 请求连接511
15.2.8 关闭套接字511
15.2.9 套接字通信512
15.2.10 主机字节序和网络字节序514
15.3 网络信息515
15.3.1 因特网守护进程520
15.3.2 套接字选项521
15.4 多客户522
15.4.1 select系统调用524
15.4.2 多客户527
15.5 数据报531
15.6 小结533
第16章 用GTK+进行GNOME编程534
16.1 X窗口系统简介534
16.1.1 X服务器534
16.1.2 X客户端535
16.1.3 X协议535
16.1.4 Xlib库535
16.1.5 X工具包535
16.1.6 窗口管理器535
16.1.7 创建GUI的其他方法——平台无关的窗口API536
16.2 GTK+简介536
16.2.1 GLib类型系统536
16.2.2 GTK+对象系统537
16.2.3 GNOME简介538
16.2.4 安装GNOME/GTK+开发库539
16.3 事件、信号和回调函数541
16.4 包装盒543
16.5 GTK+窗口部件546
16.5.1 GtkWindow546
16.5.2 GtkEntry547
16.5.3 GtkSpinButton550
16.5.4 GtkButton551
16.5.5 GtkTreeView554
16.6 GNOME窗口部件558
16.7 GNOME菜单559
16.8 对话框563
16.8.1 GtkDialog563
16.8.2 模态对话框564
16.8.3 非模态对话框565
16.8.4 GtkMessageDialog566
16.9 CD数据库应用程序567
16.10 小结578
第17章 用Qt进行KDE编程579
17.1 KDE和Qt简介579
17.2 安装Qt580
17.3 信号和槽582
17.4 Qt窗口部件587
17.4.1 QLineEdit587
17.4.2 Qt按钮590
17.4.3 QComboBox594
17.4.4 QListView597
17.5 对话框599
17.5.1 QDialog599
17.5.2 QMessageBox601
17.5.3 QInputDialog602
17.5.4 使用qmake简化makefile文件的编写603
17.6 菜单和工具栏604
17.7 使用KDE/Qt编写CD数据库应用程序607
17.8 小结615
第18章 设备驱动程序616
18.1 编写设备驱动程序616
18.2 设备617
18.2.1 设备类型617
18.2.2 用户空间与内核空间618
18.3 字符设备623
18.4 字符设备驱动程序示例:schar626
18.5 时间和jiffies643
18.5.1 小的延时644
18.5.2 定时器645
18.5.3 让出处理器647
18.5.4 任务队列648
18.5.5 预定义任务队列649
18.6 内存管理650
18.6.1 虚拟内存区650
18.6.2 地址空间651
18.6.3 内存地址的类型652
18.6.4 在设备驱动程序中申请内存652
18.6.5 在用户空间和内核空间之间传递数据654
18.6.6 移动更多的数据655
18.6.7 简单的内存映射656
18.6.8 I/O内存657
18.6.9 Iomap中的设备分配659
18.6.10 I/O内存的mmap操作659
18.7 I/O端口661
18.7.1 中断处理662
18.7.2 IRQ处理函数665
18.7.3 下半部666
18.7.4 可重入性666
18.7.5 禁止单个中断667
18.7.6 原子操作668
18.7.7 保护临界区668
18.8 块设备670
18.8.1 radimo:简单的RAM盘模块670
18.8.2 介质的更换673
18.8.3 块设备的ioctl操作673
18.8.4 request函数673
18.8.5 缓冲区缓存675
18.8.6 进一步学习677
18.9 调试677
18.9.1 Oops回溯法677
18.9.2 调试模块679
18.9.3 魔术键680
18.9.4 内核调试器——kdb680
18.9.5 远程调试681
18.9.6 调试中的注意事项681
18.10 可移植性681
18.10.1 数据类型681
18.10.2 字节序682
18.10.3 数据的对齐682
18.11 内核源代码剖析682
18.12 小结684
第19章 Linux标准685
19.1 C编程语言686
19.1.1 发展历史简介686
19.1.2 GNU编译器集合686
19.1.3 gcc选项687
19.2 接口和LSB688
19.2.1 LSB标准函数库689
19.2.2 LSB用户和组690
19.2.3 LSB系统初始化690
19.3 文件系统层次标准691
19.4 进一步学习标准693
19.5 小结694
热门推荐
- 3380008.html
- 419852.html
- 1025445.html
- 66514.html
- 1862709.html
- 361055.html
- 3408394.html
- 147870.html
- 3063899.html
- 2550820.html
- http://www.ickdjs.cc/book_3511060.html
- http://www.ickdjs.cc/book_2434335.html
- http://www.ickdjs.cc/book_2562660.html
- http://www.ickdjs.cc/book_1836189.html
- http://www.ickdjs.cc/book_1423996.html
- http://www.ickdjs.cc/book_44324.html
- http://www.ickdjs.cc/book_3143199.html
- http://www.ickdjs.cc/book_3092434.html
- http://www.ickdjs.cc/book_2588733.html
- http://www.ickdjs.cc/book_1691934.html