词条 | 实战Linux编程精髓 |
释义 | 书名,(以)罗宾斯,中译本由中国电力出版社2005年出版。全书主要分为三部分:第一部分讨论了基本的编程问题,第二部分比较深入地讨论了上面这些概念,如进程间通信、信号、权限检查;第三部分介绍了程序设计的一个重要环节即调试。 版权信息书 名: 实战Linux编程精髓 作 者:(以)罗宾斯|译者 出版社: 中国电力出版社 出版时间: 2005 ISBN: 9787508330075 开本: 16 定价: 59.80 元 内容简介编写应用软件,特别是那些比较重要的软件,毫无疑问要涉及到系统调用。在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 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。