书名,(以)罗宾斯,中译本由中国电力出版社2005年出版。全书主要分为三部分:第一部分讨论了基本的编程问题,第二部分比较深入地讨论了上面这些概念,如进程间通信、信号、许可权检查;第三部分介绍了程式设计的一个重要环节即调试。
基本介绍
- 书名:实战Linux编程精髓
- ISBN:9787508330075
- 定价:59.80元
- 出版社:中国电力出版社
- 出版时间:2005
- 装帧:平装
- 开本:16
内容简介

编写套用软体,特别是那些比较重要的软体,毫无疑问要涉及到系统调用。在UNIX/Linux环境下编程更是如此。要想编写优秀的软体,就必须熟悉这些系统调用的方方面面。通过阅读这本书,你能够快速地掌握这些重要技术,以构建严谨的Linux软体。全书主要分为三大部分:第一部分讨论了基本的编程问题,包括Linux编程环境、基本的档案和进程管理与操作、记忆体操作,还介绍了一些基本的库接口。第二部分比较深入地讨论了上面这些概念,如进程间通信、信号、许可权检查;此外这部分还介绍了一些扩展接口;接着讨论了多语言问题;最后介绍了一些高级专题。第三部分介绍了程式设计的一个重要环节即调试。本书结构合理、概念清晰、实例丰富,并具有很强的启发性和实用性。
作者简介
ARNOLDROBBINS是一位专业程式设计师和教授,同时也是《LJNIXinaNLJtshell))、《LearllingtheKorrlShell》和《EffectiveawkProgramming》等书的作者。另外,他还是一名长期的GNUProject的志愿者,目前负责维护gawk。从1980年开始,Robbirls就开始使用C、C++、LINIX和GNIJ/LInux。
编辑推荐
想学习编程?想从Windows过渡到Linux?曾经进行过Linux开发,但希望进一步探索系统调用接口?不管是哪种情况,这本书都能够快速和直接地帮助你掌握这些重要技术,以构建严谨的Linux软体。
该书通过展示和解释优良的实例程式来介绍Linux编程,这可能是最有效的方式。通过引用V7UNIX和GNU中的原始码,ArnoldRobbins着重介绍了基础的系统调用API,这些API在任何重要程式中均处于核心地位。Robbins还循序渐进地介绍了许多高水平的编程準则和“内幕’’技术。与此同时,他还仔细地陈述了许多实际性的问题,如性能、可移植性和健壮性。
目录
译者序
前言
第1部分档案与用户
第1章引言3
1.1Linux/Unix档案模型3
1.2Linux/Unix进程模型7
1.3标準C与原始C9
1.4为什幺GNU程式更好?10
1.5回顾可移植性13
1.6推荐读物14
1.7小结15
练习15
第2章参数、选项和环境17
2.1选项和参数约定17
2.2基本的命名行处理技术20
2.3选项解析:getopt()和getopt_long()函式21
2.4环境29
2.5小结36
练习37
第3章用户级记忆体管理39
3.1Linux/Unix地址空间39
3.2记忆体分配42
3.3小结60
练习60
第4章档案和档案I/O63
4.1介绍Linux/UnixI/O模型63
4.2介绍基本的程式结构64
4.3确定出了什幺问题65
4.4输入与输出70
4.5随机访问:在档案内部移动读写位置78
4.6创建档案81
4.7强迫数据存到磁碟上86
4.8设定档案长度87
4.9小结88
练习88
第5章目录和档案元数据91
5.1仔细思考目录的内容91
5.2创建和删除目录100
5.3读取目录102
5.4获取档案相关信息107
5.5修改所有权、许可权和修改时间119
5.6小结125
练习125
第6章通用库接口——第一部分127
6.1时间和日期127
6.2排序和搜寻函式138
6.3用户名和组名150
6.4终端:isatty()154
6.5推荐读物155
6.6小结155
练习156
第7章综合套用:ls159
7.1V7ls命令选项159
7.2V7ls命令的原始码160
7.3小结173
练习173
第8章档案系统和目录遍历175
8.1安装和卸载档案系统175
8.2用于档案系统管理的档案182
8.3获得每个档案系统的信息187
8.4在档案层次结构中移动197
8.5在档案树中移动:GNUdu206
8.6改变根目录:chroot()212
8.7小结213
练习214
第2部分进程、IPC和国际化
第9章进程管理和管道217
9.1进程创建和管理217
9.2进程组237
9.3基本的进程间通信:管道和FIFO239
9.4档案描述符管理243
9.5例子:gawk中的双向管道255
9.6推荐读物258
9.7小结259
练习260
第10章信号263
10.1引言263
10.2信号处理264
10.3标準C信号:signal()和raise()函式264
10.4运转中的信号处理器268
10.5SystemV版本3的信号API:sigset()等函式277
10.6POSIX信号279
10.7进程间通信信号287
10.8一些重要的专用信号290
10.9横跨fork()和exec()函式的信号303
10.10小结303
练习305
第11章许可权、用户ID号及组ID号307
11.1许可权检查307
11.2获取用户ID和组ID310
11.3核准作为真实用户:access()函式312
11.4核准作为有效用户:euidaccess()函式(GLIBC)313
11.5设定目录的额外许可权标誌位314
11.6设定真实ID和有效ID316
11.7处理三种ID:getresuid()和setresuid()(Linux)320
11.8穿越安全雷区:setuidroot321
11.9推荐读物322
11.10小结322
练习323
第12章通用库接口——第二部分325
12.1断言语句:assert()宏325
12.2底层记忆体操作:memXXX()函式328
12.3临时档案332
12.4自杀:abort()函式339
12.5非局部转移339
12.6伪随机数346
12.7元字元扩展351
12.8正则表达式360
12.9推荐读物366
12.10小结367
练习368
第13章国际化和本地化371
13.1引言371
13.2区域设定和C语言库372
13.3程式讯息的动态翻译387
13.4请把它拼写出来,好吗?399
13.5推荐读物401
13.6小结401
练习402
第14章扩展接口403
14.1分配对齐的记忆体:posix_memalign()和memalign()函式403
14.2档案锁定404
14.3更精确的时间413
14.4使用二叉树进行高级搜寻419
14.5小结428
练习428
第3部分调试和最终的项目
第15章调试433
15.1首要问题434
15.2为调试而编译434
15.3GDB基础434
15.4为调试而编程440
15.5调试工具462
15.6软体测试482
15.7调试规则483
15.8推荐读物485
15.9小结485
练习486
第16章综合前面所有主题的工程489
16.1工程描述489
16.2推荐读物491
第4部分附录
附录A十年学会编程495
为何人人都这幺着急?495
十年学会编程496
参考文献497
答案498
脚注498
附录BCaldera原始UNIX许可证499
附灵CGNU通用公共许可证501
序言501
複製、发布和修改的条款和条件502
没有担保504
条款和条件的结束504
如何将这些条款运用于你的新程式504
套用示例505