
| 这是一本卓越的介绍Linux编程的书。Arnold采用了非常有效的方法来展示富有经验的程序员是如何使用Linux编程接口的,选题精辟,解释透彻。特别是其中有关国际化的内容很值得一看,强烈推荐! |
| ARNOLD ROBBINS是一位专业程序员和教授,同时也是《UNIX in a Nutshell入《Learning the Korn Shell》和《Effective awk Programming》等书的作者。另外,他还是一名长期的GNUProject的志愿者,目前负责维护gawk。从1980年开始,Robbins就开始使用C、C++、UNIX和GNU/Linux。 .. << 查看详细 |
| 译者序 前 言 第1部分 第1章 引言 3 1.1 linux/unix文件模型 3 1.2 linux/unix进程模型 7 1.3 标准c与原始c 9 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.1 linux/unix地址空间 39 3.2 内存分配 42 3.3 小结 60 练习 60 第4章 文件和文件i/o 63 4.1 介绍linux/unix i/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章 综合应用:ls 159 7.1 v7 ls命令选项 159 7.2 v7 ls命令的源代码 160 7.3 小结 173 练习 173 第8章 文件系统和目录遍历 175 8.1 安装和卸载文件系统 175 8.2 用于文件系统管理的文件 182 8.3 获得每个文件系统的信息 187 8.4 在文件层次结构中移动 197 8.5 在文件树中移动:gnu du 206 8.6 改变根目录:chroot() 212 8.7 小结 213 练习 214 第2部分 第9章 进程管理和管道 217 9.1 进程创建和管理 217 9.2 进程组 237 9.3 基本的进程间通信:管道和fifo 239 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.5 system v版本3的信号api:sigset()等函数 277 10.6 posix信号 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和组id 310 11.3 核准作为真实用户:access()函数 312 11.4 核准作为有效用户:euidaccess()函数(glibc) 313 11.5 设置目录的额外权限标志位 314 11.6 设置真实id和有效id 316 11.7 处理三种id:getresuid()和setresuid()(linux) 320 11.8 穿越安全雷区:setuid root 321 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.3 gdb基础 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 附录b caldera原始unix许可证 499 附灵c gnu通用公共许可证 501 序言 501 复制、发布和修改的条款和条件 502 没有担保 504 条款和条件的结束 504 如何将这些条款运用于你的新程序 504 应用示例 505 |
商品评论(0条)