Linux程序设计 第4版
¥
90.39
7.0折
¥
129.8
全新
库存13件
作者(英)马修,(英)斯通斯
出版社人民邮电出版社
ISBN9787115228215
出版时间2010-06
装帧平装
开本16开
定价129.8元
货号1202594933
上书时间2024-11-24
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
陈健,毕业于南京大学,1996年获电子学学士,2002年获计算机硕士,现工作于南京大学网络信息中心。长期从事软件研发和教学工作,主要研究方向为网络管理。
目录
第1章入门1
1.1UNIX、Linux和GNU简介1
1.1.1什么是UNIX1
1.1.2什么是Linux2
1.1.3GNU项目和自由软件基金会3
1.1.4Linux发行版3
1.2Linux程序设计4
1.2.1Linux程序4
1.2.2文本编辑器5
1.2.3C语言编译器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.6shell的语法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.7here文档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.1Linux文件结构78
3.1.1目录79
3.1.2文件和设备79
3.2系统调用和设备驱动程序80
3.3库函数81
3.4底层文件访问82
3.4.1write系统调用82
3.4.2read系统调用83
3.4.3open系统调用84
3.4.4访问权限的初始值85
3.4.5其他与文件管理有关的系统调用88
3.5标准I/O库91
3.5.1fopen函数91
3.5.2fread函数92
3.5.3fwrite函数92
3.5.4fclose函数92
3.5.5fflush函数93
3.5.6fseek函数93
3.5.7fgetc、getc和getchar函数93
3.5.8fputc、putc和putchar函数94
3.5.9fgets和gets函数94
3.6格式化输入和输出94
3.6.1printf、fprintf和sprintf函数94
3.6.2scanf、fscanf和sscanf函数96
3.6.3其他流函数98
3.6.4文件流错误99
3.6.5文件流和文件描述符99
3.7文件和目录的维护100
3.7.1chmod系统调用100
3.7.2chown系统调用100
3.7.3unlink、link和symlink系统调用100
3.7.4mkdir和rmdir系统调用101
3.7.5chdir系统调用和getcwd函数101
3.8扫描目录102
3.8.1opendir函数102
3.8.2readdir函数102
3.8.3telldir函数103
3.8.4seekdir函数103
3.8.5closedir函数103
3.9错误处理106
3.9.1strerror函数106
3.9.2perror函数106
3.10/proc文件系统107
3.11高 级主题:fcntl和mmap110
3.11.1fcntl系统调用110
3.11.2mmap函数111
3.12小结113
第4章Linux环境114
4.1程序参数114
4.1.1getopt116
4.1.2getopt_long118
4.2环境变量120
4.2.1环境变量的用途122
4.2.2environ变量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.4termios结构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.2curses术语和概念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.1WINDOW结构185
6.5.2通用函数186
6.5.3移动和更新窗口187
6.5.4优化屏幕刷新190
6.6子窗口191
6.7keypad模式193
6.8彩色显示195
6.9pad198
6.10CD唱片应用程序200
6.10.1新CD唱片应用程序的开始部分200
6.10.2main函数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.1dbm数据库237
7.3.2dbm例程238
7.3.3dbm访问函数239
7.3.4其他dbm函数242
7.4CD唱片应用程序244
7.4.1更新设计244
7.4.2使用dbm数据库的CD唱片应用程序245
7.5小结262
第8章MySQL263
8.1安装263
8.1.1MySQL软件包264
8.1.2安装后的配置266
8.1.3安装后的故障修复270
8.2MySQL管理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.4CD数据库应用程序301
8.4.1创建表302
8.4.2添加数据304
8.4.3使用C语言访问数据306
8.5小结316
第9章开发工具317
9.1多个源文件带来的问题317
9.2make命令和makefile文件318
9.2.1makefile的语法318
9.2.2make命令的选项和参数318
9.2.3makefile文件中的注释321
9.2.4makefile文件中的宏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.10GNU make和gcc329
9.3源代码控制330
9.3.1RCS331
9.3.2SCCS336
9.3.3RCS和SCCS的比较336
9.3.4CVS337
9.3.5CVS的前端程序340
9.3.6Subversion341
9.4编写手册页342
9.5发行软件345
9.5.1patch程序345
9.5.2其他软件发行工具347
9.6RPM软件包349
9.6.1使用RPM软件包文件349
9.6.2安装RPM软件包350
9.6.3创建RPM软件包350
9.7其他软件包格式358
9.8开发环境358
9.8.1KDevelop358
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.1lint:清理程序中的“垃圾”376
10.4.2函数调用工具378
10.4.3用prof/gprof产生执行存档380
10.5断言381
10.6内存调试383
10.6.1ElectricFence函数库383
10.6.2valgrind384
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.4pipe调用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.7CD数据库应用程序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.3Linux的信号量机制490
14.1.4使用信号量492
14.2共享内存496
14.2.1shmget函数497
14.2.2shmat函数497
14.2.3shmdt498
14.2.4shmctl498
14.3消息队列502
14.3.1msgget函数502
14.3.2msgsnd函数503
14.3.3msgrcv函数503
14.3.4msgctl函数504
14.4CD数据库应用程序507
14.4.1修改服务器函数507
14.4.2修改客户函数509
14.5IPC状态命令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.1select系统调用537
15.4.2多客户540
15.5数据报543
15.6小结545
第16章用GTK+进行GNOME编程546
16.1X视窗系统简介546
16.1.1X服务器547
16.1.2X客户端547
16.1.3X协议547
16.1.4Xlib库547
16.1.5X工具包547
16.1.6窗口管理器548
16.1.7创建GUI的其他方法——平台无关的窗囗API548
16.2GTK+简介549
16.2.1GLib类型系统549
16.2.2GTK+对象系统550
16.2.3GNOME简介550
16.2.4安装GNOME/GTK+开发库551
16.3事件、信号和回调函数554
16.4组装盒构件556
16.5GTK+构件559
16.5.1GtkWindow559
16.5.2GtkEntry560
16.5.3GtkSpinButton563
16.5.4GtkButton565
16.5.5GtkTreeView568
16.6GNOME构件571
16.7GNOME菜单572
16.8对话框576
16.8.1GtkDialog577
16.8.2模式对话框578
16.8.3非模式对话框579
16.8.4GtkMessageDialog580
16.9CD数据库应用程序581
16.10小结592
第17章用Qt进行KDE编程593
17.1KDE和Qt简介593
17.2安装Qt594
17.3信号和槽596
17.4Qt构件602
17.4.1QLineEdit602
17.4.2Qt按钮605
17.4.3QComboBox609
17.4.4QListView613
17.5对话框615
17.5.1QDialog615
17.5.2QMessageBox617
17.5.3QInputDialog618
17.5.4使用qmake简化makefile文件的编写620
17.6KDE的菜单和工具栏620
17.7使用KDE/Qt编写CD数据库应用程序624
17.7.1主窗口624
17.7.2AddCdDialog627
17.7.3LogonDialog629
17.7.4main.cpp630
17.8小结632
第18章Linux标准633
18.1C编程语言634
18.1.1发展历史简介634
18.1.2GNU编译器集634
18.1.3gcc选项635
18.2接口和LSB636
18.2.1LSB标准函数库637
18.2.2LSB用户和组638
18.2.3LSB系统初始化638
18.3文件系统层次结构标准639
18.4更多标准642
18.5小结642
内容摘要
本书讲述了Linux系统及其他UNIX风格的操作系统上的程序开发,主要内容包括标准Linux C语言函数库和由不同的Linux或UNIX标准指定的各种工具的使用方法,大多数标准Linux开发工具的使用方法,通过DBM和MySQL数据库系统存储Linux中的数据,为X视窗系统建立图形化用户界面等。本书通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者掌握相关的知识。本书适合Linux的初学者及希望利用Linu进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
主编推荐
**负盛名的Linux程序设计图书
内容全、深入
全球开源社区集体智慧结晶
Linux/UNIX专业人士倾力打造
— 没有更多了 —
以下为对购买帮助不大的评价