搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
C语言与Unix系统编程
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787302230496
  • 作      者:
    (美)Adam Hoover著
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2010
收藏
编辑推荐
  兼顾工具和系统编程概念,编程实践和实例思维缜密,有助于显著提升编程技能。《C语言与Unix系统编程》以系统级别的问题求解为重点,通过丰富、广泛的动手实例向学生介绍系统编程。书中覆盖常用的系统工具,如库、调试器、系统调用、shell和脚本语言,侧重于强化和巩固程序员的编程技能。此同时,《C语言与Unix系统编程》详细讲解了底层的数据类型及其在内存管理中的使用。
  《C语言与Unix系统编程》是为选修程序设计基础(入门)课程的学生设计的。
展开
内容介绍
  《C语言与Unix系统编程》针对系统编程所涉及的问题,深入探究底层数据类型,以内存管理为重点,结合编程实践和实例,繁简得当地介绍了系统编程工具和资源,旨在帮助读者显著提升编程技能,为以后的学习和工作奠定良好的基础。《C语言与Unix系统编程》作为系统编程的入门教材,适合一学期的教学使用,是读者学习数据结构、算法、操作系统和编译器等高级编程主题的理想基础。
展开
精彩书评
  “学生们(包括多年前的我)几乎都喜欢动手实践,而且作者的这种方法在这方面显然做得非常出色。本书采取严谨而不失轻松的方式全面介绍了计算机系统,能激发学生的积极性,并为他们将来的学习和职业奠定良好的基础。”
  ——维拉诺瓦大学大学 Tom Way
  “实例是本书最大的亮点。许多书都在讨论命令,但实际上并没有讲具体用法或者这些命令会的输出结果。这本书却做到了这一点。”
  ——爱达荷大学 Bob Rinker
  “本书的特色是广泛使用抽象的内存8央射来帮助学生理解内存在一般情况下是如何保存值的,以及指针是如何实现的。”
  ——佛罗里达大西洋大学 Sam Hsu
  “写得相当不错,这是一本通俗易懂的优秀教材。”
  ——北肯塔基大学 Richard Fox
展开
精彩书摘
  在计算技术领域,特定编程语言的选择长期以来纷争不断。对应用程序开发而言,这样的争论依然如火如荼。然而,对系统编程而言,C语言是专家们公认的编程语言。原因很简单,离硬件最近。所有编程语言都提供了很多抽象层来辅助程序开发。例如,与数值内存地址相比,命名变量的概念极大地简化了程序的开发工作。与所有常用编程语言不同,C提供了最小的抽象,并且由此使C成为距离硬件最近的语言。多数C语句都可以简单地翻译成机器代码。在C语言中可用的数据类型被设计成反映硬件直接支持的数据类型。通过间接方式(指针)访问内存,则向程序员提供了访问系统所有组件的能力。
  从历史上讲,Linux内核的开发以及最初LJnix操作系统的开发,都是使用c语言来完成的。大多数系统软件也是使用C语言来开发的。设备驱动程序几乎也总是使用c语言来完成的。距离硬件较近的一个间接好处就是速度。执行用C语言编写的代码要比执行用其他语言编写的代码速度快。对从事系统软件工作的人或希望开发密切与硬件(外围设备或主机系统)打交道的代码的人而言,学习使用C语言的概念会有机会提升他们最实用的编程技巧。
  我们的这种选择并不是排斥其他编程语言的学习,或者提倡只学习C语言编程。本书没有提及的其他编程概念也很容易学习,并且可以使用另外一种编程语言容易地加以实现。然而,作者的观点是,充分了解最接近硬件的编程语言,有助于读者更好地理解一种更抽象的编程语言及其用法。
展开
目录
第1章 简介
1.1 什么是系统编程
1.1.1 需要的背景知识
1.1.2 为什么要用Unix
1.1.3 为什么要使用C
1.2 三个工具
1.2.1 外壳程序
1.2.2 文本编辑器
1.2.3 调试器
1.2.4 集成开发环境(IDE)
1.3 如何进行调试
1.3.1 程序崩溃
1.3.2 程序卡在无限循环中
1.3.3 程序运行中出错
1.3.4 循环动作不正确
1.4 程序开发
1.5 C语言回顾
1.5.1 基本数据类型
1.5.2 基本算术
1.5.3 循环
.1.5.4 条件语句和复合语句
1.5.5 流程控制
问题与练习

第2章 位、字节和数据类型
2.1 位模式
2.1.1 纯数字位模式
2.1.2 符号数字位模式
2.1.3 二进制补码位模式
2.1.4 浮点位模式
2.1.5 ASCII和Unicode位模式
2.1.6 位模式小结
2.2 按位运算
2.2.1 二元逻辑运算
2.2.2 位运算符
2.2.3 位掩码运算
2.3 内存映像
问题和练习

第3章 数组和字符串
3.1 数组
3.2 字符串
3.3 字符串库函数
3.3.1 字符串长度:strlen()
3.3.2 字符串比较:strcmp()
3.3.3 字符串复制:strcpy()
3.3.4 字符串连接:strcat()
3.3.5 字符串打印:sprintf()
3.3.6 字符串函数示例
3.3.7 非库问题
3.4 命令行参数
问题与练习

第4章 指针和结构
4.1 指针
4.2 使用指针
4.2.1 从函数中回传值
4.2.2 指针和数组
4.2.3 动态内存分配
4.2.4 二级指针
4.3 结构
4.4 使用结构
4.4.1 数组和结构
4.4.2 定义和范围
4.4.3 嵌套结构
4.4.4 指针和结构
问题与练习

第5章 输入/输出
5.1 流
5.1.1 在流中传输字节
5.1.2 系统I/O函数
5.1.3 标准流
5.2 缓冲区
5.3 管道
5.3.1 管道链接(pipeline chaining)
5.3.2 程序测试
5.4 文件
5.4.1 文件指针
5.4.2 文件属性
5.4.3 目录
5.5 设备
问题与练习

第6章 程序管理
6.1 程序建立
6.1.1 目标代码和链接
6.1.2 编译
6.1.3 生成文件(Makefiles)
6.1.4 其他建立工具
6.2 代码组织
6.2.1 函数
6.2.2 多个文件
6.2.3 变量的作用域
6.2.4 注释、缩进和变量名
6.2.5 预处理
6.2.6 类型定义(Typedefs)
6.2.7 讨论
6.3 程序分派方法
6.3.1 档案
6.3.2 软件包
问题与练习

第7章 系统调用
7.1 操作的种类(Families of Operations)
7.2 库和系统调用
7.3 进程系统调用
7.3.1 进程
7.3.2 fork()
7.3.3 exec()类
7.3.4 wait()
7.4 信号系统调用
7.4.1 signal()
7.4.2 kill()
7.5 套接字系统调用
7.5.1 网络概念和系统命令
7.5.2 客户/服务器模型(Client-Server Model)
7.5.3 示例
问题与练习

第8章 库
8.1 使用库
8.1.1 头文件
8.1.2 库文件
8.2 库的目的
8.3 C标准库
8.4 curses库
8.4.1 I/O控制
8.4.2 动态图形
8.5 X库
8.5.1 窗口
8.5.2 二维图形
8.5.3 图形特征
8.5.4 用户输入
8.5.5 字体
8.6 生成一个库
8.7 使用库时易犯的错误
问题与练习

第9章 脚本语言
9.1 使用脚本语言
9.2 外壳脚本编程
9.2.1 输入/输出
9.2.2 变量
9.2.3 循环
9.2.4 条件语句
9.2.5 外壳外部程序
9.2.6 其他功能
9.3 Perl
9.3.1 输入/输出
9.3.2 变量
9.3.3 循环和条件
9.3.4 模式替换(Pattern Subtitution)
9.3.5 其他功能
9.4 MATLAB
9.4.1 输入/输出
9.4.2 变量
9.4.3 循环和条件
9.4.4 内置的数学函数
9.4.5 绘图
9.4.6 其他功能
9.5 讨论
问题与练习

附录A ASCII表
附录B 常用外壳程序命令
附录C 系统程序
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证