×
暂无评论
图文详情
  • ISBN:7508330072
  • 装帧:简裝本
  • 册数:暂无
  • 重量:暂无
  • 开本:24cm
  • 页数:505
  • 出版时间:2005-07-01
  • 条形码:9787508330075 ; 978-7-5083-3007-5

本书特色

编写应用软件,特别是那些比较重要的软件,毫无疑问要涉及到系统调用。在UNIX/Linux环境下编程更是如此。要想编写优秀的软件,就必须熟悉这些系统调用的方方面面。通过阅读这本书,你能够快速地掌握这些重要技术,以构建严谨的Linux软件。全书主要分为三大部分:**部分讨论了基本的编程问题,包括Linux编程环境、基本的文件和进程管理与操作、内存操作,还介绍了一些基本的库接口。第二部分比较深入地讨论了上面这些概念,如进程间通信、信号、权限检查;此外这部分还介绍了一些扩展接口;接着讨论了多语言问题;*后介绍了一些高级专题。第三部分介绍了程序设计的一个重要环节即调试。本书结构合理、概念清晰、实例丰富,并具有很强的启发性和实用性。

内容简介

编写应用软件,特别是那些比较重要的软件,毫无疑问要涉及到系统调用。在UNIX/Linux环境下编程更是如此。要想编写优秀的软件,就必须熟悉这些系统调用的方方面面。通过阅读这本书,你能够快速地掌握这些重要技术,以构建严谨的Linux软件。全书主要分为三大部分:**部分讨论了基本的编程问题,包括Linux编程环境、基本的文件和进程管理与操作、内存操作,还介绍了一些基本的库接口。第二部分比较深入地讨论了上面这些概念,如进程间通信、信号、权限检查;此外这部分还介绍了一些扩展接口;接着讨论了多语言问题;*后介绍了一些高级专题。第三部分介绍了程序设计的一个重要环节即调试。本书结构合理、概念清晰、实例丰富,并具有很强的启发性和实用性。

目录

译者序
前言
第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
展开全部

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航