摘要:
1.0 (for Jpcap 0.7)Author: Keita Fujii (kfujii@uci.edu)Home page:http://netresearch.ics.uci.edu/kfujii/jpcap/doc/index.htmlTable of ContentsIntroducti... 阅读全文
摘要:
第一章 RDBMS基础:SQL Server数据库构成数据库中的对象数据库管理系统中包含许多对象。对于SQL Server,它常包含以下重要的数据库对象:数据库索引事务日志程序集表报表文件集全文本目录图表用户自定义数据类型视图角色存储过程用户用户自定义函数SQL Server的4个系统数据库在给定的... 阅读全文
摘要:
(《SQL Server 2005 编程入门经典》 第13章)用户自定义函数和存储过程非常相似,但它们也有一些行为和能力的区别。13.1 UDF的定义用户自定义函数是有序的T-SQL语句集合,该语句集合能够预先优化和编译,并且可以作为一个单元来调用。它和存储过程的主要区别在于返回结果的方式。为了能支... 阅读全文
摘要:
(《SQL Server 2005 编程入门经典》 第10章)视图的核心实际上仅仅是一个存储的查询。重要的是可以将来自于基本表(或者其他视图)的数据混合以及匹配,以创建在大多数方面上像另一个基本表那样起作用的对象。10.1 简单的视图视图语法的基本形式:CREATE VIEW AS 扩展的语法如... 阅读全文
摘要:
(《SQL Server 2005 编程入门经典》 第12章) 存储过程(stored procedure)有时也称为sproc。存储过程存储于数据库中而不是在单独的文件中,有输入参数、输出参数以及返回值等。 12.1 创建存储过程:基本语法 在数据库中,创建存储过程和创建其他对象的过程一样,除了它使用的AS关键字外。存储过程的基本语法如下:CREATE PROCDUER|PROC [[... 阅读全文
摘要:
(《SQL Server 2005 编程入门经典》 第11章)11.1 脚本基础脚本示例:USE NorthwindDECLARE @Ident INTINSERT INTO Orders(CustomerID, OrderDate)VALUES(‘ALFKI’, DATEADD(day, -1, ... 阅读全文
摘要:
全局选项:--username ARG 指定用户名称 ARG --password ARG 指定密码 ARG --no-auth-cache 不要缓存用户认证令牌 --non-interactive 不要交互提示 --trust-server-cert 不提示的接受未知的证书颁发机构发行的... 阅读全文
摘要:
在签出和更新的时候,我们了解过Subversion的-r选项。事实证明,在Subversion中,有很多地方我们都需要引用版本。你在-r后面提供的选项称作版本标识符。当你使用版本标识符时,Subversion接受版本号、日期和一些符号名,列于下表。号项目仓库的版本号,比如87。{日期}在日期开始时的... 阅读全文
摘要:
*~*.o*.a*.exe*.swp.metadata.gitignore~$* 阅读全文
摘要:
注意忽略只对未跟踪文件有效,对于已加入版本库的文件无效。一、三级忽略文件1. 版本库共享式忽略文件版本库中目录下的.gitignore文件作用于整个目录及子目录,会随着该版本库同其他人共享。2. 本地的针对具体版本库的独享式忽略文件即在版本库.git目录下的文件info/exclude中设置文件忽略... 阅读全文
摘要:
头文件string.h中包含了使用这些字符串函数所需的原型和声明。1. 字符串长度size_t strlen(char const *string);strlen函数返回一个类型为size_t的值。这个类型是在头文件stddef.h中定义的,它是一个无符号整数类型。在表达式中使用无符号数可能导致不可预料的结果。例如,下面两个表达式看上去是相等的:if (strlen(x) >= strlen(y)) ...if (strlen(x) - strlen(y) >= 0) ...但事实上它们是不相等的。第1条语句将按照你预想的那样工作,但第2条语句的结果将永远是真。strlen的结果是 阅读全文
摘要:
看了《C和指针》后,参考网上的代码自己实现的版本(真的不是纯抄的)。这是5.9 编程练习的第4题。头文件bits.h:/* bits.h */#ifndef BITS_H_INCLUDED#define BITS_H_INCLUDEDvoid set_bit(char bit_array[], unsigned int bit_number);void clear_bit(char bit_array[], unsigned int bit_number);void reverse_bit(char bit_array[], unsigned int bit_number);void assi 阅读全文
摘要:
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为“对称二叉B树”,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在O(log n)时间内做查找,插入和删除,这里的n是树中元素的数目。一、用途和好处红黑树和AVL树一样都对插入时间、删除时间和查找时间提供了最好可能的最坏情况担保。这不只是使它们在时间敏感的应用如实时应用(real time appli 阅读全文
摘要:
Linus大神在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level coding。下面是Linus的教学原文及翻译——“At the opposite end of the s... 阅读全文
摘要:
一、数学库<math.h>数学库包含许多有用的数学函数。头文件math.h提供了这些函数的函数声明或原型。注意角度的单位为弧度。ANSI C标准数学函数原型描述原型描述double acos (double x)返回余弦值为x的角度值double asin (double x)返回正弦值为x的角度值double atan (double x)返回正切值为x的角度值double atan2 (double y, double x)返回正切值为y/x的角度值double cos (double x)返回x的余弦值double sin (double x)返回x的正弦值double ta 阅读全文
摘要:
ANSI C标准不仅描述了C语言,还描述了C预处理器的工作机制。预处理器可以根据您的请求包含其他文件,还可以选择让编译器处理哪些代码。预处理器不能理解C,它一般是接受一些文本并将其转换成其他文本。一、翻译程序的第一步在程序作预处理之前,代码会先被进行几次翻译处理:1. 编译器首先把源代码中出现的字符映射到源字符集。该过程处理多字节字符和三元符(trigraph)扩展。2. 编译器查找反斜线后紧跟换行的实例并删除这些实例。也就是说,将类似下面的两个物理行:printf ("That's wond\erful!\n");转换成一个逻辑行(logical line):pr 阅读全文
摘要:
1. 位字段(bit field)是一个signed int或unsigned int中一组相邻的位(C99还允许_Bool类型位字段)。C使用unsigned int作为给位字段结构分配内存空间的基本单位。位字段由一个结构声明建立,该结构声明为每个字段提供标签,并决定字段的宽度。例如,以下声明建立了4个1位字段:struct { unsinged int autfd : 1; unsinged int autfc : 1; unsinged int autfn : 1; unsinged int autfs : 1;} prnt;该定义使prnt包含4个1位字段。现在... 阅读全文
摘要:
声明指向函数的指针:void ToUpper (char *); // 把字符串转换为大写void (*pf) (char *); // 指向函数的指针第一对圆括号将运算符*和pf结合在一起,这意味着pf是一个指向函数的指针。这就使得(*pf)是一个函数,并使(char *)作为该函数的参量列表,void作为返回类型。创建这类声明最简单的方法是注意它用表达式(*Pf)代替函数名ToUpper。根据运算符优先级的规则,第一个括号是必须的,省略括号会导致完全不同的解释:void *pf (char *); // pf是返回一个指针的函数有了函数指针后,可以把适当类型的函数的地址赋给它。在这种场合中 阅读全文
摘要:
声明时可以使用的修饰符修饰符含义*表示一个指针()表示一个函数[]表示一个数组C允许使用多个修饰符,这就使得可以创建如下各种各样的类型:int board[8][8]; // int数组的数组int **ptr; // 指向int的指针的指针int *risks[10]; // 具有10个元素的数组,每个元素是一个指向int的指针int (* risks)[10]; // 一个指针,指向具有10个元素的int数组int * oof[3][4]; // 一个3*4的数组,每个元素是一个指向int的指针int (* uuf)[3][4]; // 一个指针,指向3*4的int数组int (* uof 阅读全文
摘要:
C使用术语名字空间(namespace)来识别一个名字的程序部分。作用域是这个概念的一部分:名字相同但具有不同作用域的两个变量不好冲突;而名字相同并在相同作用域中的两个变量就会冲突。名字空间是分类别的。在一个特定的作用域内的结构标记、联合标记以及枚举标记都共享同一个名字空间,而且这个名字空间与普通变量使用的名字空间是不同的。这意味着,可以在同一个作用域内对一个变量和一个标记使用同一个名字,而不会产生错误;但是不能在同一个作用域内使用名字相同的两个标记或名字相同的两个变来能够。例如,在C中下面的语句不会产生冲突:struct rect {double x; double y;};int rect 阅读全文