
包邮实战Linux编程精髓

- 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
-
硅谷之火-人与计算机的未来
¥13.7¥39.8 -
造神:人工智能神话的起源和破除 (精装)
¥32.7¥88.0 -
超简单:用python+ ChatGPT让excel飞起来
¥48.4¥79.0 -
专业导演教你拍好短视频
¥13.8¥39.9 -
数学之美
¥41.0¥69.0 -
系统性创新手册(管理版)
¥42.6¥119.0 -
软件工程(第2版)
¥14.3¥39.0 -
计算机网络技术
¥24.1¥33.0 -
.NET安全攻防指南(下册)
¥89.0¥129.0 -
.NET安全攻防指南(上册)
¥89.0¥129.0 -
人工智能的底层逻辑
¥55.3¥79.0 -
数据挖掘技术与应用
¥52.0¥75.0 -
SOLIDWORKS中文版实用教程
¥134.9¥149.9 -
PYTHON机器学习:基础、算法与实战
¥71.3¥99.0 -
计算
¥92.2¥128.0 -
MIDJOURNEY AI绘画从入门到精通
¥71.5¥98.0 -
商业产品分析:从用户数据获得商业洞见的数据科学方法
¥89.0¥129.0 -
老年人学电脑
¥34.9¥49.9 -
人工智能AI摄影与后期修图从小白到高手:MIDJOURNEY+PHOTOSHOP
¥56.9¥98.0 -
人月神话(纪念典藏版)
¥68.6¥98.0