自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程点滴

Runtime Error: Segmentation Fault

  • 博客(12)
  • 资源 (19)
  • 收藏
  • 关注

原创 【编译原理】自下而上的语法分析之LR分析法

LR分析器是一种由下而上(bottom-up)的上下文无关语法分析器。LR意指由左(Left)至右处理输入字符串,并以最右边优先派生(Right derivation)的推导顺序(相对于LL分析器)建构语法树。能以此方式分析的语法称为LR语法。而在LR(k)这样的名称中,k代表的是分析时所需前瞻符号(lookahead symbol)的数量,也就是除了目前处理到的输入符号之外,还得再向右引

2014-07-13 21:54:30 25015

原创 【编译原理】TINY编译器之词法分析(二)

TINY编译器的词法分析程序在scan.c文件zhon

2014-07-06 20:53:44 3405

原创 【编译原理】自上而下的语法分析之预测分析法

LL(1)预测分析法第一个L表示从左到右扫描输入串第二个L表示最左推导1表示每步只需向前看一个符号yucefenxi

2014-07-06 20:30:47 6572 1

转载 【编译原理】自顶向下的语法分析之递归下降分析法

1. 基本原理递归下降法是语法分析中最易懂的一种方法。它的主要原理是,对每个非终极符按其产生式结构构造相应语法分析子程序,其中终极符产生匹配命令,而非终极符则产生过程调用命令。因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。其中子程序的结构与产生式结构几乎是一致的。2. 文法要求递归下降法要满足的条件:假设A的全部产生式为Aàα1|α2|……|αn ,则必须

2014-07-05 20:42:52 6372

原创 【编译原理】文法的语法图

语法图用作可视地表示EBNF规则(syntax diagram)。它是由表示终结符和非终结符的方框、表示序列和选择的带箭头的线,以及每一个表示文法规则定义该非终结符的图表的非终结符标记组成。圆形框和椭圆形框用来指出图中的终结符,而方形框和矩形框则用来指出非终结符。废话少说,上例子:1.factor→(exp)|number2.A→{B}3.A→[B]

2014-07-05 19:28:40 8464

转载 二维码原理与编码介绍

简介二维条码(二维码)是用某种特定的几何图形按一定规律在平面(二维方向)分布的黑白相间的图形记录数据符号信息的。二维码是DOI(Digital Object Unique Identifier,数字对象唯一识别符)的一种。在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读

2014-07-05 16:25:16 7678

转载 【编译原理】乔姆斯基(chomsky)文法分类

什么是0型文法,1型文法,2型文法,3型文法乔姆斯基把方法分成四种类型,即0型、1型、2型和3型。这几种文法类型的概念一定要掌握,是一个非常重要的考点。对于这几种文法,一般书上都只有简单的概念介绍,比较抽象,所以很多学员都没有真正理解。下面我将把概念结合例题进行讲解。0型文法设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)*且至少含有

2014-07-04 21:58:20 20645

原创 【编译原理】使用flex生成词法扫描程序步骤

1. flex源文件:TEST.L2. shiyo

2014-07-03 21:59:41 1758

原创 关于使用fgets获取的字符串换行符在windows和linux平台的差异

众所周知,windows创建的文件是、人\n\r结束的, 而linux,mac这种unix类系统是\n结束的。

2014-07-03 21:51:26 2550

转载 关于简单的JVM实现的讨论,记录备忘。

http://hllvm.group.iteye.com/group/topic/38476?page=2http://club.alibabatech.org/article_detail.htm?articleId=19http://blog.cloud-sec.org/

2014-07-02 21:27:23 380

原创 【编译原理】TINY编译器学习(一)

《编译原理及实践》中附带的TINY编译器,代码仅有几千行,这点代码就实现了一个完整的编译器,及对应的目标代码运行程序,接下来会用一段时间研究下这个代码。1. 源代码来源Google “loucomp” 下载即可。2. 源码结构globals.h    main.cutil.h          util.cscan.h        scan.cpa

2014-06-30 22:14:52 1976

原创 【编译原理】语法制导翻译之属性文法(一)

龙书P195SSD 语法制导定义。综合属性:

2014-06-29 20:28:31 8143 2

《算法导论》第二版答案

算法经典书籍《算法导论》第二版的全部答案,适合看这本书对习题有疑问的同学。

2010-04-10

Autodesk(欧特克)笔试面试资料汇总

AUTODESK的面试题在网上是闹的沸沸扬扬,作为一个名企,这是可以理解的,况且其面试题质量也是不错的。抽一些闲暇时间,把网上传的比较多的70道题简单的解答了一遍,不为别的,只为再熟悉一下在大学学过的一些基础知识。希望对大家有用。

2010-04-10

《汇编语言》第二版 王爽 中文高清扫描版115M part6 (因为太大,压缩成了6部分,解压后一个文件)

作者简介  王爽,著名计算机科学教育家,哲学家。1 975年出生于黑龙江省齐齐哈尔市。1 997年毕业于宁夏大学计算机及应用专业。2007年开创了可行性哲学理论体系。自1 999年以来,陆续提出并实践了知识屏蔽、线索化、多元环境等一系列对高等专业人才培养具有重要意义的教学与教育思想。多年以来一直积极致力于推动教育发展的各项事业,同时在高等教育、计算机科学与技术、IT产业等诸多领域都有所成就。 目录第1章 基础知识   1.1 机器语言   1.2 汇编语言的产生   1.3 汇编语言的组成   1.4 存储器   1.5 指令和数据   1.6 存储单元   1.7 CPU对存储器的读写   1.8 地址总线   1.9 数据总线   1.10 控制总线   1.11 内存地址空间(概述)   1.12 主板   1.13 接口卡   1.14 各类存储器芯片   1.15 内存地址空间  第2章 寄存器  2.1 通用寄存器         2.2 字在寄存器中的存储     2.3 几条汇编指令        2.4 物理地址          2.5 16位结构的CPU       2.6 8086cPu给出物理地址的方法 2.7 “段地址xl6+偏移地址=物理地址”的本质含义         2.8 段的概念          2.9 段寄存器          2.10 CS和IP          2.11 修改CS、IP的指令     2.12 代码段          实验1 查看CPU和内存,用机器指令和汇编指令编程    第3章 寄存器(内存访问)    3.1 内存中字的存储      3.2 DS 31:1[address]         3.3 字的传送         3.4 ITIOV、add、sub指令    3.5 数据段          3.6 栈                3.7 CPU提供的栈机制     3.8 栈顶超界的问题       3.9 puSh、pop指令       3.10 栈段           实验2 用机器指令和汇编指令编程  第4章 第一个程序          4.1 一个源程序从写出到执行的过程  4.2 源程序             4.3 编辑源程序           4.4 编译              4.5 连接              4.6 以简化的方式进行编译和连接   4.7 1.exe的执行           4.8 谁将可执行文件中的程序装载进入内存并使它运行?        4.9 程序执行过程的跟踪       实验3 编程、编译、连接、跟踪   第5章 【BX】和loop指令       5.1 【BX】              5.2 Loop指令            5.3 在Debu9中跟踪用loop指令实现酮循环程序            5.4 Debu9和汇编编译器masm对指令的不同处理         5.5 loop和【bx】的联合应用     …… 第3章 寄存器(内存访问)  第4章 第一个程序  第5章 [BX]和loop指令  第6章 包含多个段的程序  第7章 更灵活的定位内存地址的方法  第8章 数据处理的两个基本问题  第9章 转移指令的原理  第10章 CALL和RET指令  第11章 标志寄存器  第12章 内中断  第13章 int指令  第14章 端口  第15章 外中断  第16章 直接定址表  第17章 使用BIOS进行键盘输入和磁盘读写

2010-04-03

《汇编语言》第二版 王爽 中文高清扫描版115M part5 (因为太大,压缩成了6部分,解压后一个文件)

作者简介  王爽,著名计算机科学教育家,哲学家。1 975年出生于黑龙江省齐齐哈尔市。1 997年毕业于宁夏大学计算机及应用专业。2007年开创了可行性哲学理论体系。自1 999年以来,陆续提出并实践了知识屏蔽、线索化、多元环境等一系列对高等专业人才培养具有重要意义的教学与教育思想。多年以来一直积极致力于推动教育发展的各项事业,同时在高等教育、计算机科学与技术、IT产业等诸多领域都有所成就。 目录第1章 基础知识   1.1 机器语言   1.2 汇编语言的产生   1.3 汇编语言的组成   1.4 存储器   1.5 指令和数据   1.6 存储单元   1.7 CPU对存储器的读写   1.8 地址总线   1.9 数据总线   1.10 控制总线   1.11 内存地址空间(概述)   1.12 主板   1.13 接口卡   1.14 各类存储器芯片   1.15 内存地址空间  第2章 寄存器  2.1 通用寄存器         2.2 字在寄存器中的存储     2.3 几条汇编指令        2.4 物理地址          2.5 16位结构的CPU       2.6 8086cPu给出物理地址的方法 2.7 “段地址xl6+偏移地址=物理地址”的本质含义         2.8 段的概念          2.9 段寄存器          2.10 CS和IP          2.11 修改CS、IP的指令     2.12 代码段          实验1 查看CPU和内存,用机器指令和汇编指令编程    第3章 寄存器(内存访问)    3.1 内存中字的存储      3.2 DS 31:1[address]         3.3 字的传送         3.4 ITIOV、add、sub指令    3.5 数据段          3.6 栈                3.7 CPU提供的栈机制     3.8 栈顶超界的问题       3.9 puSh、pop指令       3.10 栈段           实验2 用机器指令和汇编指令编程  第4章 第一个程序          4.1 一个源程序从写出到执行的过程  4.2 源程序             4.3 编辑源程序           4.4 编译              4.5 连接              4.6 以简化的方式进行编译和连接   4.7 1.exe的执行           4.8 谁将可执行文件中的程序装载进入内存并使它运行?        4.9 程序执行过程的跟踪       实验3 编程、编译、连接、跟踪   第5章 【BX】和loop指令       5.1 【BX】              5.2 Loop指令            5.3 在Debu9中跟踪用loop指令实现酮循环程序            5.4 Debu9和汇编编译器masm对指令的不同处理         5.5 loop和【bx】的联合应用     …… 第3章 寄存器(内存访问)  第4章 第一个程序  第5章 [BX]和loop指令  第6章 包含多个段的程序  第7章 更灵活的定位内存地址的方法  第8章 数据处理的两个基本问题  第9章 转移指令的原理  第10章 CALL和RET指令  第11章 标志寄存器  第12章 内中断  第13章 int指令  第14章 端口  第15章 外中断  第16章 直接定址表  第17章 使用BIOS进行键盘输入和磁盘读写

2010-04-03

《汇编语言》第二版 王爽 中文高清扫描版115M part4 (因为太大,压缩成了6部分,解压后一个文件)

作者简介  王爽,著名计算机科学教育家,哲学家。1 975年出生于黑龙江省齐齐哈尔市。1 997年毕业于宁夏大学计算机及应用专业。2007年开创了可行性哲学理论体系。自1 999年以来,陆续提出并实践了知识屏蔽、线索化、多元环境等一系列对高等专业人才培养具有重要意义的教学与教育思想。多年以来一直积极致力于推动教育发展的各项事业,同时在高等教育、计算机科学与技术、IT产业等诸多领域都有所成就。 目录第1章 基础知识   1.1 机器语言   1.2 汇编语言的产生   1.3 汇编语言的组成   1.4 存储器   1.5 指令和数据   1.6 存储单元   1.7 CPU对存储器的读写   1.8 地址总线   1.9 数据总线   1.10 控制总线   1.11 内存地址空间(概述)   1.12 主板   1.13 接口卡   1.14 各类存储器芯片   1.15 内存地址空间  第2章 寄存器  2.1 通用寄存器         2.2 字在寄存器中的存储     2.3 几条汇编指令        2.4 物理地址          2.5 16位结构的CPU       2.6 8086cPu给出物理地址的方法 2.7 “段地址xl6+偏移地址=物理地址”的本质含义         2.8 段的概念          2.9 段寄存器          2.10 CS和IP          2.11 修改CS、IP的指令     2.12 代码段          实验1 查看CPU和内存,用机器指令和汇编指令编程    第3章 寄存器(内存访问)    3.1 内存中字的存储      3.2 DS 31:1[address]         3.3 字的传送         3.4 ITIOV、add、sub指令    3.5 数据段          3.6 栈                3.7 CPU提供的栈机制     3.8 栈顶超界的问题       3.9 puSh、pop指令       3.10 栈段           实验2 用机器指令和汇编指令编程  第4章 第一个程序          4.1 一个源程序从写出到执行的过程  4.2 源程序             4.3 编辑源程序           4.4 编译              4.5 连接              4.6 以简化的方式进行编译和连接   4.7 1.exe的执行           4.8 谁将可执行文件中的程序装载进入内存并使它运行?        4.9 程序执行过程的跟踪       实验3 编程、编译、连接、跟踪   第5章 【BX】和loop指令       5.1 【BX】              5.2 Loop指令            5.3 在Debu9中跟踪用loop指令实现酮循环程序            5.4 Debu9和汇编编译器masm对指令的不同处理         5.5 loop和【bx】的联合应用     …… 第3章 寄存器(内存访问)  第4章 第一个程序  第5章 [BX]和loop指令  第6章 包含多个段的程序  第7章 更灵活的定位内存地址的方法  第8章 数据处理的两个基本问题  第9章 转移指令的原理  第10章 CALL和RET指令  第11章 标志寄存器  第12章 内中断  第13章 int指令  第14章 端口  第15章 外中断  第16章 直接定址表  第17章 使用BIOS进行键盘输入和磁盘读写

2010-04-03

《汇编语言》第二版 王爽 中文高清扫描版115M part3 (因为太大,压缩成了6部分,解压后一个文件)

作者简介  王爽,著名计算机科学教育家,哲学家。1 975年出生于黑龙江省齐齐哈尔市。1 997年毕业于宁夏大学计算机及应用专业。2007年开创了可行性哲学理论体系。自1 999年以来,陆续提出并实践了知识屏蔽、线索化、多元环境等一系列对高等专业人才培养具有重要意义的教学与教育思想。多年以来一直积极致力于推动教育发展的各项事业,同时在高等教育、计算机科学与技术、IT产业等诸多领域都有所成就。 目录第1章 基础知识   1.1 机器语言   1.2 汇编语言的产生   1.3 汇编语言的组成   1.4 存储器   1.5 指令和数据   1.6 存储单元   1.7 CPU对存储器的读写   1.8 地址总线   1.9 数据总线   1.10 控制总线   1.11 内存地址空间(概述)   1.12 主板   1.13 接口卡   1.14 各类存储器芯片   1.15 内存地址空间  第2章 寄存器  2.1 通用寄存器         2.2 字在寄存器中的存储     2.3 几条汇编指令        2.4 物理地址          2.5 16位结构的CPU       2.6 8086cPu给出物理地址的方法 2.7 “段地址xl6+偏移地址=物理地址”的本质含义         2.8 段的概念          2.9 段寄存器          2.10 CS和IP          2.11 修改CS、IP的指令     2.12 代码段          实验1 查看CPU和内存,用机器指令和汇编指令编程    第3章 寄存器(内存访问)    3.1 内存中字的存储      3.2 DS 31:1[address]         3.3 字的传送         3.4 ITIOV、add、sub指令    3.5 数据段          3.6 栈                3.7 CPU提供的栈机制     3.8 栈顶超界的问题       3.9 puSh、pop指令       3.10 栈段           实验2 用机器指令和汇编指令编程  第4章 第一个程序          4.1 一个源程序从写出到执行的过程  4.2 源程序             4.3 编辑源程序           4.4 编译              4.5 连接              4.6 以简化的方式进行编译和连接   4.7 1.exe的执行           4.8 谁将可执行文件中的程序装载进入内存并使它运行?        4.9 程序执行过程的跟踪       实验3 编程、编译、连接、跟踪   第5章 【BX】和loop指令       5.1 【BX】              5.2 Loop指令            5.3 在Debu9中跟踪用loop指令实现酮循环程序            5.4 Debu9和汇编编译器masm对指令的不同处理         5.5 loop和【bx】的联合应用     …… 第3章 寄存器(内存访问)  第4章 第一个程序  第5章 [BX]和loop指令  第6章 包含多个段的程序  第7章 更灵活的定位内存地址的方法  第8章 数据处理的两个基本问题  第9章 转移指令的原理  第10章 CALL和RET指令  第11章 标志寄存器  第12章 内中断  第13章 int指令  第14章 端口  第15章 外中断  第16章 直接定址表  第17章 使用BIOS进行键盘输入和磁盘读写

2010-04-03

《汇编语言》第二版 王爽 中文高清扫描版115M part2 (因为太大,压缩成了6部分,解压后一个文件)

作者简介  王爽,著名计算机科学教育家,哲学家。1 975年出生于黑龙江省齐齐哈尔市。1 997年毕业于宁夏大学计算机及应用专业。2007年开创了可行性哲学理论体系。自1 999年以来,陆续提出并实践了知识屏蔽、线索化、多元环境等一系列对高等专业人才培养具有重要意义的教学与教育思想。多年以来一直积极致力于推动教育发展的各项事业,同时在高等教育、计算机科学与技术、IT产业等诸多领域都有所成就。 目录第1章 基础知识   1.1 机器语言   1.2 汇编语言的产生   1.3 汇编语言的组成   1.4 存储器   1.5 指令和数据   1.6 存储单元   1.7 CPU对存储器的读写   1.8 地址总线   1.9 数据总线   1.10 控制总线   1.11 内存地址空间(概述)   1.12 主板   1.13 接口卡   1.14 各类存储器芯片   1.15 内存地址空间  第2章 寄存器  2.1 通用寄存器         2.2 字在寄存器中的存储     2.3 几条汇编指令        2.4 物理地址          2.5 16位结构的CPU       2.6 8086cPu给出物理地址的方法 2.7 “段地址xl6+偏移地址=物理地址”的本质含义         2.8 段的概念          2.9 段寄存器          2.10 CS和IP          2.11 修改CS、IP的指令     2.12 代码段          实验1 查看CPU和内存,用机器指令和汇编指令编程    第3章 寄存器(内存访问)    3.1 内存中字的存储      3.2 DS 31:1[address]         3.3 字的传送         3.4 ITIOV、add、sub指令    3.5 数据段          3.6 栈                3.7 CPU提供的栈机制     3.8 栈顶超界的问题       3.9 puSh、pop指令       3.10 栈段           实验2 用机器指令和汇编指令编程  第4章 第一个程序          4.1 一个源程序从写出到执行的过程  4.2 源程序             4.3 编辑源程序           4.4 编译              4.5 连接              4.6 以简化的方式进行编译和连接   4.7 1.exe的执行           4.8 谁将可执行文件中的程序装载进入内存并使它运行?        4.9 程序执行过程的跟踪       实验3 编程、编译、连接、跟踪   第5章 【BX】和loop指令       5.1 【BX】              5.2 Loop指令            5.3 在Debu9中跟踪用loop指令实现酮循环程序            5.4 Debu9和汇编编译器masm对指令的不同处理         5.5 loop和【bx】的联合应用     …… 第3章 寄存器(内存访问)  第4章 第一个程序  第5章 [BX]和loop指令  第6章 包含多个段的程序  第7章 更灵活的定位内存地址的方法  第8章 数据处理的两个基本问题  第9章 转移指令的原理  第10章 CALL和RET指令  第11章 标志寄存器  第12章 内中断  第13章 int指令  第14章 端口  第15章 外中断  第16章 直接定址表  第17章 使用BIOS进行键盘输入和磁盘读写

2010-04-03

《汇编语言》第二版 王爽 中文高清扫描版115M part1 (因为太大,压缩成了6部分,解压后一个文件)

编辑推荐  本书自出版以来,受到业内专家和高校教师、广大计算机专业学生和计算机科学与技术学习者的热烈欢迎和高度评价。许多高校用作教材,教学效果很好。很多人在网络上将其与国外同专业名著相并列向广大读者推荐。事实上,本书已成了推动我国计算机科学与技术教育发展的一部重要著作。本书出版4年连续印刷了8次,成为本专业学生和广大学习者的必读书。   本社为满足广大读者的需求,特请王爽老师对原书进行修订补充,出版第2版,以飨读者。   本书特色:   ·采用全新的结构对课程内容进行了组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索   ·在深入本质的层面上对汇编语言进行讲解   ·对关键环节进行深入的剖析 内容简介汇编语言是各种CPU提供的机器指令的助记符的集合,人们可以用汇编语言直接控制硬件系统进行工作。汇编语言是很多相关课程(如数据结构、操作系统、微机原理等)的重要基础。为了更好地引导、帮助读者学习汇编语言,作者以循序渐进的思想精心创作了这本书。本书具有如下特点:采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在深入本质的层面上对汇编语言进行讲解;对关键环节进行深入的剖析。   本书可用作大学计算机专业本科生的汇编教材及希望深入学习计算机科学的读者的自学教材。 作者简介  王爽,著名计算机科学教育家,哲学家。1 975年出生于黑龙江省齐齐哈尔市。1 997年毕业于宁夏大学计算机及应用专业。2007年开创了可行性哲学理论体系。自1 999年以来,陆续提出并实践了知识屏蔽、线索化、多元环境等一系列对高等专业人才培养具有重要意义的教学与教育思想。多年以来一直积极致力于推动教育发展的各项事业,同时在高等教育、计算机科学与技术、IT产业等诸多领域都有所成就。 目录第1章 基础知识   1.1 机器语言   1.2 汇编语言的产生   1.3 汇编语言的组成   1.4 存储器   1.5 指令和数据   1.6 存储单元   1.7 CPU对存储器的读写   1.8 地址总线   1.9 数据总线   1.10 控制总线   1.11 内存地址空间(概述)   1.12 主板   1.13 接口卡   1.14 各类存储器芯片   1.15 内存地址空间  第2章 寄存器  2.1 通用寄存器         2.2 字在寄存器中的存储     2.3 几条汇编指令        2.4 物理地址          2.5 16位结构的CPU       2.6 8086cPu给出物理地址的方法 2.7 “段地址xl6+偏移地址=物理地址”的本质含义         2.8 段的概念          2.9 段寄存器          2.10 CS和IP          2.11 修改CS、IP的指令     2.12 代码段          实验1 查看CPU和内存,用机器指令和汇编指令编程    第3章 寄存器(内存访问)    3.1 内存中字的存储      3.2 DS 31:1[address]         3.3 字的传送         3.4 ITIOV、add、sub指令    3.5 数据段          3.6 栈                3.7 CPU提供的栈机制     3.8 栈顶超界的问题       3.9 puSh、pop指令       3.10 栈段           实验2 用机器指令和汇编指令编程  第4章 第一个程序          4.1 一个源程序从写出到执行的过程  4.2 源程序             4.3 编辑源程序           4.4 编译              4.5 连接              4.6 以简化的方式进行编译和连接   4.7 1.exe的执行           4.8 谁将可执行文件中的程序装载进入内存并使它运行?        4.9 程序执行过程的跟踪       实验3 编程、编译、连接、跟踪   第5章 【BX】和loop指令       5.1 【BX】              5.2 Loop指令            5.3 在Debu9中跟踪用loop指令实现酮循环程序            5.4 Debu9和汇编编译器masm对指令的不同处理         5.5 loop和【bx】的联合应用     …… 第3章 寄存器(内存访问)  第4章 第一个程序  第5章 [BX]和loop指令  第6章 包含多个段的程序  第7章 更灵活的定位内存地址的方法  第8章 数据处理的两个基本问题  第9章 转移指令的原理  第10章 CALL和RET指令  第11章 标志寄存器  第12章 内中断  第13章 int指令  第14章 端口  第15章 外中断  第16章 直接定址表  第17章 使用BIOS进行键盘输入和磁盘读写 

2010-04-03

TCP/IP详解 卷1:协议

作者: W.Richard Stevens 国际知名的Unix和网络专家,《TCP/IP 详解》(三卷本)作者  W.Richard Stevens(1951-1999),是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的教师和顾问。Stevens先生1951年生于赞比亚,他的家庭曾多次搬迁,最终定居于南非。早年,他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程;还曾在康涅狄格州纽黑文市的健康系统国际公司任主管计算机服务的副总裁。 Stevens先生。。。 目 录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行线路吞吐量计算 21 2.11 小结 22 第3章 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 一般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超时设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 小结 46 第5章 RARP:逆地址解析协议 47 5.1 引言 47 5.2 RARP的分组格式 47 5.3 RARP举例 47 5.4 RARP服务器的设计 48 5.4.1 作为用户进程的RARP服务器 49 5.4.2 每个网络有多个RARP服务器 49 5.5 小结 49 第6章 ICMP:Internet控制报文协议 50 6.1 引言 50 6.2 ICMP报文的类型 50 6.3 ICMP地址掩码请求与应答 52 6.4 ICMP时间戳请求与应答 53 6.4.1 举例 54 6.4.2 另一种方法 55 6.5 ICMP端口不可达差错 56 6.6 ICMP报文的4.4BSD处理 59 6.7 小结 60 第7章 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP时间戳选项 69 7.5 小结 70 第8章 Traceroute程序 71 8.1 引言 71 8.2 Traceroute 程序的操作 71 8.3 局域网输出 72 8.4 广域网输出 75 8.5 IP源站选路选项 76 8.5.1 宽松的源站选路的traceroute 程序示例 78 8.5.2 严格的源站选路的traceroute 程序示例 79 8.5.3 宽松的源站选路traceroute程序 的往返路由 80 8.6 小结 81 第9章 IP选路 83 9.1 引言 83 9.2 选路的原理 84 9.2.1 简单路由表 84 9.2.2 初始化路由表 86 9.2.3 较复杂的路由表 87 9.2.4 没有到达目的地的路由 87 9.3 ICMP主机与网络不可达差错 88 9.4 转发或不转发 89 9.5 ICMP重定向差错 89 9.5.1 一个例子 90 9.5.2 更多的细节 91 9.6 ICMP路由器发现报文 92 9.6.1 路由器操作 93 9.6.2 主机操作 93 9.6.3 实现 93 9.7 小结 94 第10章 动态选路协议 95 10.1 引言 95 10.2 动态选路 95 10.3 Unix选路守护程序 96 10.4 RIP:选路信息协议 96 10.4.1 报文格式 96 10.4.2 正常运行 97 10.4.3 度量 98 10.4.4 问题 98 10.4.5 举例 98 10.4.6 另一个例子 100 10.5 RIP版本2 102 10.6 OSPF:开放最短路径优先 102 10.7 BGP:边界网关协议 103 10.8 CIDR:无类型域间选路 104 10.9 小结 105 第11章 UDP:用户数据报协议 107 11.1 引言 107 11.2 UDP首部 107 11.3 UDP检验和 108 11.3.1 tcpdump输出 109 11.3.2 一些统计结果 109 11.4 一个简单的例子 110 11.5 IP分片 111 11.6 ICMP不可达差错(需要分片) 113 11.7 用Traceroute确定路径MTU 114 11.8 采用UDP的路径MTU发现 116 11.9 UDP和ARP之间的交互作用 118 11.10 最大UDP数据报长度 119 11.11 ICMP源站抑制差错 120 11.12 UDP服务器的设计 122 11.12.1 客户IP地址及端口号 122 11.12.2 目标IP地址 122 11.12.3 UDP输入队列 122 11.12.4 限制本地IP地址 124 11.12.5 限制远端IP地址 125 11.12.6 每个端口有多个接收者 125 11.13 小结 126 第12章 广播和多播 128 12.1 引言 128 12.2 广播 129 12.2.1 受限的广播 129 12.2.2 指向网络的广播 129 12.2.3 指向子网的广播 129 12.2.4 指向所有子网的广播 130 12.3 广播的例子 130 12.4 多播 132 12.4.1 多播组地址 133 12.4.2 多播组地址到以太网地址的转换 133 12.4.3 FDDI和令牌环网络中的多播 134 12.5 小结 134 第13章 IGMP:Internet组管理协议 136 13.1 引言 136 13.2 IGMP报文 136 13.3 IGMP协议 136 13.3.1 加入一个多播组 136 13.3.2 IGMP报告和查询 137 13.3.3 实现细节 137 13.3.4 生存时间字段 138 13.3.5 所有主机组 138 13.4 一个例子 138 13.5 小结 141 第14章 DNS:域名系统 142 14.1 引言 142 14.2 DNS基础 142 14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 高速缓存 153 14.8 用UDP还是用TCP 156 14.9 另一个例子 156 14.10 小结 157 第15章 TFTP:简单文件传送协议 159 15.1 引言 159 15.2 协议 159 15.3 一个例子 160 15.4 安全性 161 15.5 小结 162 第16章 BOOTP: 引导程序协议 163 16.1 引言 163 16.2 BOOTP的分组格式 163 16.3 一个例子 164 16.4 BOOTP服务器的设计 165 16.5 BOOTP穿越路由器 167 16.6 特定厂商信息 167 16.7 小结 168 第17章 TCP:传输控制协议 170 17.1 引言 170 17.2 TCP的服务 170 17.3 TCP的首部 171 17.4 小结 173 第18章 TCP连接的建立与终止 174 18.1 引言 174 18.2 连接的建立与终止 174 18.2.1 tcpdump的输出 174 18.2.2 时间系列 175 18.2.3 建立连接协议 175 18.2.4 连接终止协议 177 18.2.5 正常的tcpdump输出 177 18.3 连接建立的超时 178 18.3.1 第一次超时时间 178 18.3.2 服务类型字段 179 18.4 最大报文段长度 179 18.5 TCP的半关闭 180 18.6 TCP的状态变迁图 182 18.6.1 2MSL等待状态 183 18.6.2 平静时间的概念 186 18.6.3 FIN_WAIT_2状态 186 18.7 复位报文段 186 18.7.1 到不存在的端口的连接请求 187 18.7.2 异常终止一个连接 187 18.7.3 检测半打开连接 188 18.8 同时打开 189 18.9 同时关闭 191 18.10 TCP选项 191 18.11 TCP服务器的设计 192 18.11.1 TCP服务器端口号 193 18.11.2 限定的本地IP地址 194 18.11.3 限定的远端IP地址 195 18.11.4 呼入连接请求队列 195 18.12 小结 197 第19章 TCP的交互数据流 200 19.1 引言 200 19.2 交互式输入 200 19.3 经受时延的确认 201 19.4 Nagle算法 203 19.4.1 关闭Nagle算法 204 19.4.2 一个例子 205 19.5 窗口大小通告 207 19.6 小结 208 第20章 TCP的成块数据流 209 20.1 引言 209 20.2 正常数据流 209 20.3 滑动窗口 212 20.4 窗口大小 214 20.5 PUSH标志 215 20.6 慢启动 216 20.7 成块数据的吞吐量 218 20.7.1 带宽时延乘积 220 20.7.2 拥塞 220 20.8 紧急方式 221 20.9 小结 224 第21章 TCP的超时与重传 226 21.1 引言 226 21.2 超时与重传的简单例子 226 21.3 往返时间测量 227 21.4 往返时间RTT的例子 229 21.4.1 往返时间RTT的测量 229 21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新分组 243 21.12 小结 243 第22章 TCP的坚持定时器 245 22.1 引言 245 22.2 一个例子 245 22.3 糊涂窗口综合症 246 22.4 小结 250 第23章 TCP的保活定时器 251 23.1 引言 251 23.2 描述 252 23.3 保活举例 253 23.3.1 另一端崩溃 253 23.3.2 另一端崩溃并重新启动 254 23.3.3 另一端不可达 254 23.4 小结 255 第24章 TCP的未来和性能 256 24.1 引言 256 24.2 路径MTU发现 256 24.2.1 一个例子 257 24.2.2 大分组还是小分组 258 24.3 长肥管道 259 24.4 窗口扩大选项 262 24.5 时间戳选项 263 24.6 PAWS:防止回绕的序号 265 24.7 T/TCP:为事务用的TCP扩展 265 24.8 TCP的性能 267 24.9 小结 268 第25章 SNMP:简单网络管理协议 270 25.1 引言 270 25.2 协议 270 25.3 管理信息结构 272 25.4 对象标识符 274 25.5 管理信息库介绍 274 25.6 实例标识 276 25.6.1 简单变量 276 25.6.2 表格 276 25.6.3 字典式排序 277 25.7 一些简单的例子 277 25.7.1 简单变量 278 25.7.2 get-next操作 278 25.7.3 表格的访问 279 25.8 管理信息库(续) 279 25.8.1 system组 279 25.8.2 interface组 280 25.8.3 at组 281 25.8.4 ip组 282 25.8.5 icmp组 285 25.8.6 tcp组 285 25.9 其他一些例子 288 25.9.1 接口MTU 288 25.9.2 路由表 288 25.10 trap 290 25.11 ASN.1和BER 291 25.12 SNMPv2 292 25.13 小结 292 第26章 Telnet和Rlogin:远程登录 293 26.1 引言 293 26.2 Rlogin协议 294 26.2.1 应用进程的启动 295 26.2.2 流量控制 295 26.2.3 客户的中断键 296 26.2.4 窗口大小的改变 296 26.2.5 服务器到客户的命令 296 26.2.6 客户到服务器的命令 297 26.2.7 客户的转义符 298 26.3 Rlogin的例子 298 26.3.1 初始的客户-服务器协议 298 26.3.2 客户中断键 299 26.4 Telnet协议 302 26.4.1 NVT ASCII 302 26.4.2 Telnet命令 302 26.4.3 选项协商 303 26.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次 一行或行方式 304 26.4.6 同步信号 306 26.4.7 客户的转义符 306 26.5 Telnet举例 306 26.5.1 单字符方式 306 26.5.2 行方式 310 26.5.3 一次一行方式(准行方式) 312 26.5.4 行方式:客户中断键 313 26.6 小结 314 第27章 FTP:文件传送协议 316 27.1 引言 316 27.2 FTP协议 316 27.2.1 数据表示 316 27.2.2 FTP命令 318 27.2.3 FTP应答 319 27.2.4 连接管理 320 27.3 FTP的例子 321 27.3.1 连接管理:临时数据端口 321 27.3.2 连接管理:默认数据端口 323 27.3.3 文本文件传输:NVT ASCII 表示还是图像表示 325 27.3.4 异常中止一个文件的传输: Telnet同步信号 326 27.3.5 匿名FTP 329 27.3.6 来自一个未知IP地址的匿名FTP 330 27.4 小结 331 第28章 SMTP:简单邮件传送协议 332 28.1 引言 332 28.2 SMTP协议 332 28.2.1 简单例子 332 28.2.2 SMTP命令 334 28.2.3 信封、首部和正文 335 28.2.4 中继代理 335 28.2.5 NVT ASCII 337 28.2.6 重试间隔 337 28.3 SMTP的例子 337 28.3.1 MX记录:主机非直接连到 Internet 337 28.3.2 MX记录:主机出故障 339 28.3.3 VRFY和EXPN命令 340 28.4 SMTP的未来 340 28.4.1 信封的变化:扩充的SMTP 341 28.4.2 首部变化:非ASCII字符 342 28.4.3 正文变化:通用Internet邮件 扩充 343 28.5 小结 346 第29章 网络文件系统 347 29.1 引言 347 29.2 Sun远程过程调用 347 29.3 XDR:外部数据表示 349 29.4 端口映射器 349 29.5 NFS协议 351 29.5.1 文件句柄 353 29.5.2 安装协议 353 29.5.3 NFS过程 354 29.5.4 UDP还是TCP 355 29.5.5 TCP上的NFS 355 29.6 NFS实例 356 29.6.1 简单的例子:读一个文件 356 29.6.2 简单的例子:创建一个目录 357 29.6.3 无状态 358 29.6.4 例子:服务器崩溃 358 29.6.5 等幂过程 360 29.7 第3版的NFS 360 29.8 小结 361 第30章 其他的TCP/IP应用程序 363 30.1 引言 363 30.2 Finger协议 363 30.3 Whois协议 364 30.4 Archie、WAIS、Gopher、Veronica 和WWW 366 30.4.1 Archie 366 30.4.2 WAIS 366 30.4.3 Gopher 366 30.4.4 Veronica 366 30.4.5 万维网WWW 367 30.5 X窗口系统 367 30.5.1 Xscope程序 368 30.5.2 LBX: 低带宽X 370 30.6 小结 370 附录A tcpdump程序 371 附录B 计算机时钟 376 附录C sock程序 378 附录D 部分习题的解答 381 附录E 配置选项 395 附录F 可以免费获得的源代码 406 参考文献 409 缩略语 420

2010-03-31

MASM 6.15汇编语言编程调试工具

MASM 6.15 汇编语言编程调试工具,非常好用 MASM 是 Microsoft Macro Assembler 的缩写,它是 微软 为 x86 微处理器家族,所写的一套宏组译器。它最初是用来发展在 MS-DOS 上面执行的软件,同时,它也该系统最流行的组译器。 它支援的宏很灵巧,既广泛又多样性,结构化程式的惯用语法,包含高阶架构式的循环、程序呼叫,以及轮替 (alternation)(因此,MASM 算是高阶组译器的一个范本).

2010-03-31

AT&T汇编语言与GCC内嵌汇编简介

1 AT&T与INTEL的汇编语言语法的区别.........................................3 1.1 大小写...........................................................3 1.2 操作数赋值方向...................................................3 1.3 前缀.............................................................3 1.4 间接寻址语法.....................................................4 1.5 后缀.............................................................4 1.6 指令.............................................................5 2 GCC内嵌汇编.............................................................5 2.1 简介.............................................................5 2.2 内嵌汇编举例.....................................................5 2.3 语法.............................................................7 2.3.1 汇编语句模板.................................................7 2.3.2 输出部分.....................................................7 2.3.3 输入部分.....................................................8 2.3.4 限制字符.....................................................8 2.3.5 破坏描述部分................................................14 2.4 GCC如何编译内嵌汇编代码.........................................19 3 后记....................................................................20

2010-03-31

高质量C++/C编程指南

目 录 前 言... 6 第1章 文件结构... 11 1.1 版权和版本的声明... 11 1.2 头文件的结构... 12 1.3 定义文件的结构... 13 1.4 头文件的作用... 13 1.5 目录结构... 14 第2章 程序的版式... 15 2.1 空行... 15 2.2 代码行... 16 2.3 代码行内的空格... 17 2.4 对齐... 18 2.5 长行拆分... 19 2.6 修饰符的位置... 19 2.7 注释... 20 2.8 类的版式... 21 第3章 命名规则... 22 3.1 共性规则... 22 3.2 简单的Windows应用程序命名规则... 23 3.3 简单的Unix应用程序命名规则... 25 第4章 表达式和基本语句... 26 4.1 运算符的优先级... 26 4.2 复合表达式... 27 4.3 if 语句... 27 4.4 循环语句的效率... 29 4.5 for 语句的循环控制变量... 30 4.6 switch语句... 30 4.7 goto语句... 31 第5章 常量... 33 5.1 为什么需要常量... 33 5.2 const 与 #define的比较... 33 5.3 常量定义规则... 33 5.4 类中的常量... 34 第6章 函数设计... 36 6.1 参数的规则... 36 6.2 返回值的规则... 37 6.3 函数内部实现的规则... 39 6.4 其它建议... 40 6.5 使用断言... 41 6.6 引用与指针的比较... 42 第7章 内存管理... 44 7.1内存分配方式... 44 7.2常见的内存错误及其对策... 44 7.3指针与数组的对比... 45 7.4指针参数是如何传递内存的?... 47 7.5 free和delete把指针怎么啦?... 50 7.6 动态内存会被自动释放吗?... 50 7.7 杜绝“野指针”... 51 7.8 有了malloc/free为什么还要new/delete ?... 52 7.9 内存耗尽怎么办?... 53 7.10 malloc/free 的使用要点... 54 7.11 new/delete 的使用要点... 55 7.12 一些心得体会... 56 第8章 C++函数的高级特性... 57 8.1 函数重载的概念... 57 8.2 成员函数的重载、覆盖与隐藏... 60 8.3 参数的缺省值... 63 8.4 运算符重载... 64 8.5 函数内联... 65 8.6 一些心得体会... 68 第9章 类的构造函数、析构函数与赋值函数... 69 9.1 构造函数与析构函数的起源... 69 9.2 构造函数的初始化表... 70 9.3 构造和析构的次序... 72 9.4 示例:类String的构造函数与析构函数... 72 9.5 不要轻视拷贝构造函数与赋值函数... 73 9.6 示例:类String的拷贝构造函数与赋值函数... 73 9.7 偷懒的办法处理拷贝构造函数与赋值函数... 75 9.8 如何在派生类中实现类的基本函数... 75 9.9 一些心得体会... 77 第10章 类的继承与组合... 78 10.1 继承... 78 10.2 组合... 80 第11章 其它编程经验... 82 11.1 使用const提高函数的健壮性... 82 11.2 提高程序的效率... 84 11.3 一些有益的建议... 85 参考文献... 87 附录A :C++/C代码审查表... 88 附录B :C++/C试题... 93 附录C :C++/C试题的答案与评分标准

2010-03-27

GNU make中文手册

翻译整理:徐海兵 2004-09-11 目 录 第一章:概述 1.1 概述 1.2 准备知识 第二章:GNU make 介绍 2.1 Makefile简介 2.2 Makefile规则介绍 2.3 简单的示例 2.4 make如何工作 2.5 指定变量 2.6 自动推导规则 2.7 另类风格的makefile 2.8 清除工作目录过程文件 第三章:Makefile 总述 3.1 Makefile的内容 3.2 makefile文件的命名 3.3 包含其它makefile文件 3.4 变量 MAKEFILES 3.5 变量 MAKEFILE_LIST 3.6 其他特殊变量 3.7 makefile文件的重建 3.8 重载另外一个makefile 3.9 make如何解析makefile文件 3.9.1 变量取值 3.9.2 条件语句 3.9.3 规则的定义 3.10 总结 第四章:Makefile的规则 4.1 一个例子 4.2 规则语法 4.3 依赖的类型 4.4 文件名使用通配符 4.4.1 统配符使用举例 4.4.2 通配符存在的缺陷 4.4.3 函数wildcard 4.5 目录搜寻 4.5.1 一般搜索(变量VPATH) 4.5.2 选择性搜索(关键字vpath) 4.5.3 目录搜索的机制 4.5.4 命令行和搜索目录 4.5.5 隐含规则和搜索目录 4.5.6 库文件和搜索目录 4.6 Makefile伪目标 4.7 强制目标(没有命令或依赖的规则) 4.8 空目标文件 4.9 Makefile的特殊目标 4.10 多目标 4.11 多规则目标 4.12 静态模式 4.12.1 静态模式规则的语法 4.12.2 静态模式和隐含规则 4.13 双冒号规则 4.14 自动产生依赖 第五章:规则的命令 5.1 命令回显 5.2 命令的执行 5.3 并发执行命令 5.4 命令执行的错误 5.5 中断make的执行 5.6 make的递归执行 5.6.1 变量MAKE 5.6.2 变量和递归 5.6.3 命令行选项和递归 5.6.4 -w选项 5.7 定义命令包 5.8 空命令 第六章:Makefile中的变量 6.1 变量的引用 6.2 两种变量定义(赋值 ) 6.2.1 递归展开式变量 6.2.2 直接展开式变量 6.2.3 如何定义一个空格 6.2.4 “?=”操作符 6.3 变量的高级用法 6.3.1 变量的替换引用 6.3.2 变量的套嵌引用 6.4 变量取值 6.5 如何设置变量 6.6 追加变量值 6.7 override 指示符 6.8 多行定义 6.9 系统环境变量 6.10 目标指定变量 6.11 模式指定变量 第七章:Makefile的条件执行 7.1 一个例子 7.2 条件判断的基本语法 7.2.1 关键字“ifeq” 7.2.2 关键字“ifneq” 7.2.3 关键字“ifdef” 7.2.4 关键字“ifndef” 7.3 标记测试的条件语句 第八章:make的内嵌函数 8.1 函数的调用语法 8.2 文本处理函数 8.2.1 $(subst FROM,TO,TEXT) 8.2.2 $(patsubst PATTERN,REPLACEMENT,TEXT) 8.2.3 $(strip STRINT) 8.2.4 $(findstring FIND,IN) 8.2.5 $(filter PATTERN…,TEXT) 8.2.6 $(filter-out PATTERN...,TEXT) 8.2.7 $(sort LIST) 8.2.8 $(word N,TEXT) 8.2.9 $(wordlist S,E,TEXT) 8.2.10 $(words TEXT) 8.2.11 $(firstword NAMES…) 8.3 文件名处理函数 8.3.1 $(dir NAMES…) 8.3.2 $(notdir NAMES…) 8.3.3 $(suffix NAMES…) 8.3.4 $(basename NAMES…) 8.3.5 $(addsuffix SUFFIX,NAMES…) 8.3.6 $(addprefix PREFIX,NAMES…) 8.3.7 $(join LIST1,LIST2) 8.3.8 $(wildcard PATTERN) 8.4 foreach 函数 8.5 if 函数 8.6 call函数 8.7 value函数 8.8 eval函数 8.9 origin函数 8.10 shell函数 8.11 make的控制函数 8.11.1 $(error TEXT…) 8.11.2 $(warning TEXT…) 第九章:执行make 9.1 指定makefile文件 9.2 指定终极目标 9.3 替代命令的执行 9.4 防止特定文件重建 9.5 替换变量定义 9.6 使用make进行编译测试 9.7 make的命令行选项 第十章:make的隐含规则 10.1 隐含规则的使用 10.2 make的隐含规则一览 10.3 隐含变量 10.3.1 代表命令的变量 10.3.2 命令参数的变量 10.4 make隐含规则链 10.5 模式规则 10.5.1 模式规则介绍 10.5.2 模式规则示例 10.5.3 自动化变量 10.5.4 模式的匹配 10.5.5 万用规则 10.5.6 重建内嵌隐含规则 10.6 缺省规则 10.7 后缀规则 10.8 隐含规则搜索算法 第十一章:使用make更新静态库文件 11.1 库成员作为目标 11.2 静态库的更新 11.2.1 更新静态库的符号索引表 11.3 make静态库的注意事项 11.4 静态库的后缀规则 第十二章 : GNU make的特点 12.1 源自System v的特点 12.2 源自其他版本的特点 12.3 GNU make自身的特点 第十三章 和其它版本的兼容 第十四章 Makefile的约定 14.1 基本的约定 14.2 规则命令行的约定 14.3 代表命令变量 14.4 安装目录变量 14.5 Makefile的标准目标名 14.6 安装命令分类 第十五章 make的常见错误信息   附录:关键字索引 1. GNU make可识别的指示 符 2. GNU make函数 3. GNU make的自动化变量 4. GNU make环境变量 后序

2010-03-27

GCC技术参考大全(英文原版)

gcc: the complete reference McGraw Hill出版 英文原版 第一部分:The free software compiler 第二部分:using the compiler collection 第三部分:peripherals and internals 第四部分: appendixes

2010-03-21

UNIX环境高级编程

本书全面介绍了UNIX系统的程序设计界面—系统调用界面和标准C库提供的许多函数。 本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进程控制、进程间通信以及各种I/O。在此基础上,分别按章介绍了多个应用实例,包括如何创建数据库函数库,PostScript 打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序的程序等。 本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员—无论是初学者还是专家级人士—都是一本无价的参考书籍。

2010-03-14

Programming from the Ground Up

Jonathan Bartlett Programming from the Ground Up

2010-03-06

Linux C编程一站式学习

目录 历史 前言 I. C语言入门 1. 程序的基本概念 1. 程序和编程语言 2. 自然语言和形式语言 3. 程序的调试 4. 第一个程序 2. 常量、变量和表达式 1. 继续Hello World 2. 常量 3. 变量 4. 赋值 5. 表达式 6. 字符类型与字符编码 3. 简单函数 1. 数学函数 2. 自定义函数 3. 形参和实参 4. 全局变量、局部变量和作用域 4. 分支语句 1. if语句 2. if/else语句 3. 布尔代数 4. switch语句 5. 深入理解函数 1. return语句 2. 增量式开发 3. 递归 6. 循环语句 1. while语句 2. do/while语句 3. for语句 4. break和continue语句 5. 嵌套循环 6. goto语句和标号 7. 结构体 1. 复合类型与结构体 2. 数据抽象 3. 数据类型标志 4. 嵌套结构体 8. 数组 1. 数组的基本概念 2. 数组应用实例:统计随机数 3. 数组应用实例:直方图 4. 字符串 5. 多维数组 9. 编码风格 1. 缩进和空白 2. 注释 3. 标识符命名 4. 函数 5. indent工具 10. gdb 1. 单步执行和跟踪函数调用 2. 断点 3. 观察点 4. 段错误 11. 排序与查找 1. 算法的概念 2. 插入排序 3. 算法的时间复杂度分析 4. 归并排序 5. 线性查找 6. 折半查找 12. 栈与队列 1. 数据结构的概念 2. 堆栈 3. 深度优先搜索 4. 队列与广度优先搜索 5. 环形队列 13. 本阶段总结 II. C语言本质 14. 计算机中数的表示 1. 为什么计算机用二进制计数 2. 不同进制之间的换算 3. 整数的加减运算 3.1. Sign and Magnitude表示法 3.2. 1's Complement表示法 3.3. 2's Complement表示法 3.4. 有符号数和无符号数 4. 浮点数 15. 数据类型详解 1. 整型 2. 浮点型 3. 类型转换 3.1. Integer Promotion 3.2. Usual Arithmetic Conversion 3.3. 由赋值产生的类型转换 3.4. 强制类型转换 3.5. 编译器如何处理类型转换 16. 运算符详解 1. 位运算 1.1. 按位与、或、异或、取反运算 1.2. 移位运算 1.3. 掩码 1.4. 异或运算的一些特性 2. 其它运算符 2.1. 复合赋值运算符 2.2. 条件运算符 2.3. 逗号运算符 2.4. sizeof运算符与typedef类型声明 3. Side Effect与Sequence Point 4. 运算符总结 17. 计算机体系结构基础 1. 内存与地址 2. CPU 3. 设备 4. MMU 5. Memory Hierarchy 18. x86汇编程序基础 1. 最简单的汇编程序 2. x86的寄存器 3. 第二个汇编程序 4. 寻址方式 5. ELF文件 5.1. 目标文件 5.2. 可执行文件 19. 汇编与C之间的关系 1. 函数调用 2. main函数和启动例程 3. 变量的存储布局 4. 结构体和联合体 5. C内联汇编 6. volatile限定符 20. 链接详解 1. 多目标文件的链接 2. 定义和声明 2.1. extern和static关键字 2.2. 头文件 2.3. 定义和声明的详细规则 3. 静态库 4. 共享库 4.1. 编译、链接、运行 4.2. 动态链接的过程 4.3. 共享库的命名惯例 5. 虚拟内存管理 21. 预处理 1. 预处理的步骤 2. 宏定义 2.1. 函数式宏定义 2.2. 内联函数 2.3. #、##运算符和可变参数 2.4. 宏展开的步骤 3. 条件预处理指示 4. 其它预处理特性 22. Makefile基础 1. 基本规则 2. 隐含规则和模式规则 3. 变量 4. 自动处理头文件的依赖关系 5. 常用的make命令行选项 23. 指针 1. 指针的基本概念 2. 指针类型的参数和返回值 3. 指针与数组 4. 指针与const限定符 5. 指针与结构体 6. 指向指针的指针与指针数组 7. 指向数组的指针与多维数组 8. 函数类型和函数指针类型 9. 不完全类型和复杂声明 24. 函数接口 1. 本章的预备知识 1.1. strcpy与strncpy 1.2. malloc与free 2. 传入参数与传出参数 3. 两层指针的参数 4. 返回值是指针的情况 5. 回调函数 6. 可变参数 25. C标准库 1. 字符串操作函数 1.1. 初始化字符串 1.2. 取字符串的长度 1.3. 拷贝字符串 1.4. 连接字符串 1.5. 比较字符串 1.6. 搜索字符串 1.7. 分割字符串 2. 标准I/O库函数 2.1. 文件的基本概念 2.2. fopen/fclose 2.3. stdin/stdout/stderr 2.4. errno与perror函数 2.5. 以字节为单位的I/O函数 2.6. 操作读写位置的函数 2.7. 以字符串为单位的I/O函数 2.8. 以记录为单位的I/O函数 2.9. 格式化I/O函数 2.10. C标准库的I/O缓冲区 2.11. 本节综合练习 3. 数值字符串转换函数 4. 分配内存的函数 26. 链表、二叉树和哈希表 1. 链表 1.1. 单链表 1.2. 双向链表 1.3. 静态链表 1.4. 本节综合练习 2. 二叉树 2.1. 二叉树的基本概念 2.2. 排序二叉树 3. 哈希表 27. 本阶段总结 III. Linux系统编程 28. 文件与I/O 1. 汇编程序的Hello world 2. C标准I/O库函数与Unbuffered I/O函数 3. open/close 4. read/write 5. lseek 6. fcntl 7. ioctl 8. mmap 29. 文件系统 1. 引言 2. ext2文件系统 2.1. 总体存储布局 2.2. 实例剖析 2.3. 数据块寻址 2.4. 文件和目录操作的系统函数 3. VFS 3.1. 内核数据结构 3.2. dup和dup2函数 30. 进程 1. 引言 2. 环境变量 3. 进程控制 3.1. fork函数 3.2. exec函数 3.3. wait和waitpid函数 4. 进程间通信 4.1. 管道 4.2. 其它IPC机制 5. 练习:实现简单的Shell 31. Shell脚本 1. Shell的历史 2. Shell如何执行命令 2.1. 执行交互式命令 2.2. 执行脚本 3. Shell的基本语法 3.1. 变量 3.2. 文件名代换(Globbing):* ? [] 3.3. 命令代换:`或 $() 3.4. 算术代换:$(()) 3.5. 转义字符\ 3.6. 单引号 3.7. 双引号 4. bash启动脚本 4.1. 作为交互登录Shell启动,或者使用--login参数启动 4.2. 以交互非登录Shell启动 4.3. 非交互启动 4.4. 以sh命令启动 5. Shell脚本语法 5.1. 条件测试:test [ 5.2. if/then/elif/else/fi 5.3. case/esac 5.4. for/do/done 5.5. while/do/done 5.6. 位置参数和特殊变量 5.7. 函数 6. Shell脚本的调试方法 32. 正则表达式 1. 引言 2. 基本语法 3. sed 4. awk 5. 练习:在C语言中使用正则表达式 33. 信号 1. 信号的基本概念 2. 产生信号 2.1. 通过终端按键产生信号 2.2. 调用系统函数向进程发信号 2.3. 由软件条件产生信号 3. 阻塞信号 3.1. 信号在内核中的表示 3.2. 信号集操作函数 3.3. sigprocmask 3.4. sigpending 4. 捕捉信号 4.1. 内核如何实现信号的捕捉 4.2. sigaction 4.3. pause 4.4. 可重入函数 4.5. sig_atomic_t类型与volatile限定符 4.6. 竞态条件与sigsuspend函数 4.7. 关于SIGCHLD信号 34. 终端、作业控制与守护进程 1. 终端 1.1. 终端的基本概念 1.2. 终端登录过程 1.3. 网络登录过程 2. 作业控制 2.1. Session与进程组 2.2. 与作业控制有关的信号 3. 守护进程 35. 线程 1. 线程的概念 2. 线程控制 2.1. 创建线程 2.2. 终止线程 3. 线程间同步 3.1. mutex 3.2. Condition Variable 3.3. Semaphore 3.4. 其它线程间同步机制 4. 编程练习 36. TCP/IP协议基础 1. TCP/IP协议栈与数据包封装 2. 以太网(RFC 894)帧格式 3. ARP数据报格式 4. IP数据报格式 5. IP地址与路由 6. UDP段格式 7. TCP协议 7.1. 段格式 7.2. 通讯时序 7.3. 流量控制 37. socket编程 1. 预备知识 1.1. 网络字节序 1.2. socket地址的数据类型及相关函数 2. 基于TCP协议的网络程序 2.1. 最简单的TCP网络程序 2.2. 错误处理与读写控制 2.3. 把client改为交互式输入 2.4. 使用fork并发处理多个client的请求 2.5. setsockopt 2.6. 使用select 3. 基于UDP协议的网络程序 4. UNIX Domain Socket IPC 5. 练习:实现简单的Web服务器 5.1. 基本HTTP协议 5.2. 执行CGI程序 A. 字符编码 1. ASCII码 2. Unicode和UTF-8 3. 在Linux C编程中使用Unicode和UTF-8 B. GNU Free Documentation License Version 1.3, 3 November 2008 参考书目 索引

2010-03-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除