图书介绍

Linux程序设计PDF|Epub|txt|kindle电子书版本网盘下载

Linux程序设计
  • (英)马修,(英)斯通斯著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115228215
  • 出版时间:2010
  • 标注页数:644页
  • 文件大小:190MB
  • 文件页数:662页
  • 主题词:Linux操作系统-程序设计

PDF下载


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

下载说明

Linux程序设计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 文本编辑器5

1.2.3 C语言编译器5

1.2.4 开发系统导引7

1.3 获得帮助12

1.4 小结14

第2章 shell程序设计15

2.1 为什么使用shell编程15

2.2 一点哲学16

2.3 什么是shell16

2.4 管道和重定向18

2.4.1 重定向输出18

2.4.2 重定向输入19

2.4.3 管道19

2.5 作为程序设计语言的shell20

2.5.1 交互式程序20

2.5.2 创建脚本21

2.5.3 把脚本设置为可执行22

2.6 shell的语法23

2.6.1 变量23

2.6.2 条件27

2.6.3 控制结构29

2.6.4 函数39

2.6.5 命令42

2.6.6 命令的执行58

2.6.7 here文档61

2.6.8 调试脚本程序63

2.7 迈向图形化:dialog工具63

2.8 综合应用68

2.8.1 需求68

2.8.2 设计68

2.8.3 应用程序的说明76

2.9 小结77

第3章 文件操作78

3.1 Linux文件结构78

3.1.1 目录79

3.1.2 文件和设备79

3.2 系统调用和设备驱动程序80

3.3 库函数81

3.4 底层文件访问82

3.4.1 write系统调用82

3.4.2 read系统调用83

3.4.3 open系统调用84

3.4.4 访问权限的初始值85

3.4.5 其他与文件管理有关的系统调用88

3.5 标准I/O库91

3.5.1 fopen函数91

3.5.2 fread函数92

3.5.3 fwrite函数92

3.5.4 fclose函数92

3.5.5 fflush函数93

3.5.6 fseek函数93

3.5.7 fgetc、getc和getchar函数93

3.5.8 fputc、putc和putchar函数94

3.5.9 fgets和gets函数94

3.6 格式化输入和输出94

3.6.1 printf、fprintf和sprintf函数94

3.6.2 scanf、fscanf和sscanf函数96

3.6.3 其他流函数98

3.6.4 文件流错误99

3.6.5 文件流和文件描述符99

3.7 文件和目录的维护100

3.7.1 chmod系统调用100

3.7.2 chown系统调用100

3.7.3 unlink、link和symlink系统调用100

3.7.4 mkdir和rmdir系统调用101

3.7.5 chdir系统调用和getcwd函数101

3.8 扫描目录102

3.8.1 opendir函数102

3.8.2 readdir函数102

3.8.3 telldir函数103

3.8.4 seekdir函数103

3.8.5 closedir函数103

3.9 错误处理106

3.9.1 strerror函数106

3.9.2 perror函数106

3.10 /proc文件系统107

3.11 高级主题:fcntl和mmap110

3.11.1 fcntl系统调用110

3.11.2 mmap函数111

3.12 小结113

第4章 Linux环境114

4.1 程序参数114

4.1.1 getopt116

4.1.2 getopt_long118

4.2 环境变量120

4.2.1 环境变量的用途122

4.2.2 environ变量122

4.3 时间和日期123

4.4 临时文件129

4.5 用户信息131

4.6 主机信息134

4.7 日志135

4.8 资源和限制139

4.9 小结143

第5章 终端144

5.1 对终端进行读写144

5.2 与终端进行对话149

5.3 终端驱动程序和通用终端接口151

5.3.1 概述151

5.3.2 硬件模型151

5.4 termios结构152

5.4.1 输入模式153

5.4.2 输出模式154

5.4.3 控制模式155

5.4.4 本地模式155

5.4.5 特殊控制字符155

5.4.6 终端速度158

5.4.7 其他函数159

5.5 终端的输出162

5.5.1 终端的类型163

5.5.2 识别终端类型163

5.5.3 使用terminfo功能标志165

5.6 检测击键动作170

5.7 虚拟控制台172

5.8 伪终端173

5.9 小结174

第6章 使用curses函数库管理基于文本的屏幕175

6.1 用curses函数库进行编译175

6.2 curses术语和概念176

6.3 屏幕178

6.3.1 输出到屏幕179

6.3.2 从屏幕读取180

6.3.3 清除屏幕180

6.3.4 移动光标180

6.3.5 字符属性181

6.4 键盘183

6.4.1 键盘模式183

6.4.2 键盘输入184

6.5 窗口185

6.5.1 WINDOW结构185

6.5.2 通用函数186

6.5.3 移动和更新窗口187

6.5.4 优化屏幕刷新190

6.6 子窗口191

6.7 keypad模式193

6.8 彩色显示195

6.9 pad198

6.10 CD唱片应用程序200

6.10.1 新CD唱片应用程序的开始部分200

6.10.2 main函数202

6.10.3 建立菜单203

6.10.4 操作数据库文件204

6.10.5 查询CD数据库209

6.11 小结213

第7章 数据管理214

7.1 内存管理214

7.1.1 简单的内存分配214

7.1.2 分配大量的内存215

7.1.3 滥用内存218

7.1.4 空指针219

7.1.5 释放内存220

7.1.6 其他内存分配函数221

7.2 文件锁定222

7.2.1 创建锁文件222

7.2.2 区域锁定225

7.2.3 锁定状态下的读写操作227

7.2.4 文件锁的竞争232

7.2.5 其他锁命令236

7.2.6 死锁236

7.3 数据库237

7.3.1 dbm数据库237

7.3.2 dbm例程238

7.3.3 dbm访问函数239

7.3.4 其他dbm函数242

7.4 CD唱片应用程序244

7.4.1 更新设计244

7.4.2 使用dbm数据库的CD唱片应用程序245

7.5 小结262

第8章 MySQL263

8.1 安装263

8.1.1 MySQL软件包264

8.1.2 安装后的配置266

8.1.3 安装后的故障修复270

8.2 MySQL管理270

8.2.1 命令270

8.2.2 创建用户并赋予权限274

8.2.3 密码276

8.2.4 创建数据库276

8.2.5 数据类型277

8.2.6 创建表278

8.2.7 图形化工具280

8.3 使用C语言访问MySQL数据283

8.3.1 连接例程283

8.3.2 错误处理287

8.3.3 执行SQL语句288

8.3.4 更多的函数301

8.4 CD数据库应用程序301

8.4.1 创建表302

8.4.2 添加数据304

8.4.3 使用C语言访问数据306

8.5 小结316

第9章 开发工具317

9.1 多个源文件带来的问题317

9.2 make命令和makefile文件318

9.2.1 makefile的语法318

9.2.2 make命令的选项和参数318

9.2.3 makefile文件中的注释321

9.2.4 makefile文件中的宏321

9.2.5 多个目标323

9.2.6 内置规则325

9.2.7 后缀和模式规则326

9.2.8 用make管理函数库327

9.2.9 高级主题:makefile文件和子目录329

9.2.10 GNU make和gcc329

9.3 源代码控制330

9.3.1 RCS331

9.3.2 SCCS336

9.3.3 RCS和SCCS的比较336

9.3.4 CVS337

9.3.5 CVS的前端程序340

9.3.6 Subversion341

9.4 编写手册页342

9.5 发行软件345

9.5.1 patch程序345

9.5.2 其他软件发行工具347

9.6 RPM软件包349

9.6.1 使用RPM软件包文件349

9.6.2 安装RPM软件包350

9.6.3 创建RPM软件包350

9.7 其他软件包格式358

9.8 开发环境358

9.8.1 KDevelop358

9.8.2 其他开发环境360

9.9 小结360

第10章 调试361

10.1 错误类型361

10.2 常用调试技巧362

10.2.1 有漏洞的程序362

10.2.2 代码检查364

10.2.3 取样法365

10.2.4 程序的受控执行367

10.3 使用gdb进行调试368

10.3.1 启动gdb368

10.3.2 运行一个程序369

10.3.3 栈跟踪369

10.3.4 检查变量370

10.3.5 列出程序源代码370

10.3.6 设置断点371

10.3.7 用调试器打补丁374

10.3.8 深入学习gdb375

10.4 其他调试工具375

10.4.1 lint:清理程序中的“垃圾”376

10.4.2 函数调用工具378

10.4.3 用prof/gprof产生执行存档380

10.5 断言381

10.6 内存调试383

10.6.1 ElectricFence函数库383

10.6.2 valgrind384

10.7 小结387

第11章 进程和信号388

11.1 什么是进程388

11.2 进程的结构388

11.2.1 进程表390

11.2.2 查看进程390

11.2.3 系统进程391

11.2.4 进程调度393

11.3 启动新进程394

11.3.1 等待一个进程399

11.3.2 僵尸进程401

11.3.3 输入和输出重定向403

11.3.4 线程404

11.4 信号404

11.4.1 发送信号408

11.4.2 信号集412

11.5 小结415

第12章 POSIX线程416

12.1 什么是线程416

12.2 线程的优点和缺点417

12.3 第一个线程程序418

12.4 同时执行421

12.5 同步423

12.5.1 用信号量进行同步423

12.5.2 用互斥量进行同步427

12.6 线程的属性431

12.7 取消一个线程435

12.8 多线程438

12.9 小结442

第13章 进程间通信:管道443

13.1 什么是管道443

13.2 进程管道444

13.3 将输出送往popen445

13.3.1 传递更多的数据446

13.3.2 如何实现popen447

13.4 pipe调用449

13.5 父进程和子进程451

13.5.1 管道关闭后的读操作453

13.5.2 把管道用作标准输入和标准输出454

13.6 命名管道:FIFO456

13.6.1 访问FIFO文件458

13.6.2 高级主题:使用FIFO的客户/服务器应用程序464

13.7 CD数据库应用程序468

13.7.1 目标469

13.7.2 实现469

13.7.3 客户接口函数472

13.7.4 服务器接口server.c478

13.7.5 管道481

13.7.6 对CD数据库应用程序的总结487

13.8 小结487

第14章 信号量、共享内存和消息队列488

14.1 信号量488

14.1.1 信号量的定义489

14.1.2 一个理论性的例子489

14.1.3 Linux的信号量机制490

14.1.4 使用信号量492

14.2 共享内存496

14.2.1 shmget函数497

14.2.2 shmat函数497

14.2.3 shmdt498

14.2.4 shmctl498

14.3 消息队列502

14.3.1 msgget函数502

14.3.2 msgsnd函数503

14.3.3 msgrcv函数503

14.3.4 msgctl函数504

14.4 CD数据库应用程序507

14.4.1 修改服务器函数507

14.4.2 修改客户函数509

14.5 IPC状态命令511

14.5.1 显示信号量状态511

14.5.2 显示共享内存状态511

14.5.3 显示消息队列状态511

14.6 小结512

第15章 套接字513

15.1 什么是套接字513

15.2 套接字连接513

15.2.1 套接字属性517

15.2.2 创建套接字519

15.2.3 套接字地址520

15.2.4 命名套接字520

15.2.5 创建套接字队列521

15.2.6 接受连接521

15.2.7 请求连接522

15.2.8 关闭套接字523

15.2.9 套接字通信523

15.2.10 主机字节序和网络字节序525

15.3 网络信息527

15.3.1 因特网守护进程(xinetd/inetd)531

15.3.2 套接字选项533

15.4 多客户534

15.4.1 select系统调用537

15.4.2 多客户540

15.5 数据报543

15.6 小结545

第16章 用GTK+进行GNOME编程546

16.1 X视窗系统简介546

16.1.1 X服务器547

16.1.2 X客户端547

16.1.3 X协议547

16.1.4 Xlib库547

16.1.5 X工具包547

16.1.6 窗口管理器548

16.1.7 创建GUI的其他方法——平台无关的窗口API548

16.2 GTK+简介549

16.2.1 GLib类型系统549

16.2.2 GTK+对象系统550

16.2.3 GNOME简介550

16.2.4 安装GNOME/GTK+开发库551

16.3 事件、信号和回调函数554

16.4 组装盒构件556

16.5 GTK+构件559

16.5.1 GtkWindow559

16.5.2 GtkEntry560

16.5.3 GtkSpinButton563

16.5.4 GtkButton565

16.5.5 GtkTreeView568

16.6 GNOME构件571

16.7 GNOME菜单572

16.8 对话框576

16.8.1 GtkDialog577

16.8.2 模式对话框578

16.8.3 非模式对话框579

16.8.4 GtkMessageDialog580

16.9 CD数据库应用程序581

16.10 小结592

第17章 用Qt进行KDE编程593

17.1 KDE和Qt简介593

17.2 安装Qt594

17.3 信号和槽596

17.4 Qt构件602

17.4.1 QLineEdit602

17.4.2 Qt按钮605

17.4.3 QComboBox609

17.4.4 QListView613

17.5 对话框615

17.5.1 QDialog615

17.5.2 QMessageBox617

17.5.3 QInputDialog618

17.5.4 使用qmake简化makefile文件的编写620

17.6 KDE的菜单和工具栏620

17.7 使用KDE/Qt编写CD数据库应用程序624

17.7.1 主窗口624

17.7.2 AddCdDialog627

17.7.3 LogonDialog629

17.7.4 main.cpp630

17.8 小结632

第18章 Linux标准633

18.1 C编程语言634

18.1.1 发展历史简介634

18.1.2 GNU编译器集634

18.1.3 gcc选项635

18.2 接口和LSB636

18.2.1 LSB标准函数库637

18.2.2 LSB用户和组638

18.2.3 LSB系统初始化638

18.3 文件系统层次结构标准639

18.4 更多标准642

18.5 小结642

热门推荐