上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页
摘要: 具体解释请参考RFC2960。DATA chunk 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 0 | Reserved|U|B|E| Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TSN | +-+-+-+-+-+-+-+-+-+-+-+- 阅读全文
posted @ 2011-05-29 11:51 Socrates 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 转自:http://wiki.dzsc.com/info/4248.htmlSCTP 被视为一个传输层协议,它的上层为SCTP 用户应用,下层作为分组网络。在SIGTRAN 协议的应用中,SCTP 上层用户是SCN 信令的适配模块(如M2UA、M3UA),下层是IP 网。 目录SCTP相关术语 SCTP功能 SCTP 基本信令流程 添加新目录>>-->[编辑本段]-->SCTP相关术语 1. 传送地址 传送地址由 IP 地址、传输层协议类型和传输层端口号定义。由于SCTP 在IP 上传 输,所以一个SCTP 传送地址由一个IP 地址加一个SCTP 端口号决定。SCTP 阅读全文
posted @ 2011-05-18 23:25 Socrates 阅读(1026) 评论(0) 推荐(0) 编辑
摘要: 转自:http://tieba.baidu.com/f?kz=659391874摘要流控制传输协议(SCTP)是IETF新近提出的一种传输协议,用于在基于IP的网络上传输PSTN信令。本文详细研究了SCTP数据传输过程,特别是SCTP四路握手,并进一步展望了SCTP的发展前景。 关键词SCTPSS7overIP关联DoS状态CookieSYNFlooding1引言 在过去的20年内,作为一种可靠的数据传输方式,TCP提供了许多应用服务,但随着IP网的多业务化,尤其是VoIP的发展,TCP出现了很多局限性,例如对于VoIP信令及异步基于事务应用的处理。因此,IEFT的信令传输工作组(SIGT.. 阅读全文
posted @ 2011-05-18 22:23 Socrates 阅读(706) 评论(0) 推荐(0) 编辑
摘要: 18.6.3 浮点优化 一些没有包含在-o级别中的优化选项属于浮点操作,C99标准支持科学记数和高精度的浮点型,但是对于一个应用程序,你可能更关心运行速度而非浮点型变量本身,因此,-ffast-math选项定义了预处理宏__FAST_MATH__ ,指示编译器不用依赖于IEEE和ISO的浮点数学标准,--ffast-math是一组选项,具有下面六个独立选项:-fno-math-errno禁止在数学函数中使用全局变量error。-funsafe-math-optimizations“不安全的数学优化”是指那些可能违反浮点数学标准,或者没有确认的参数和结果。-fno-trapping-math产生 阅读全文
posted @ 2011-05-08 23:34 Socrates 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 18.6.2 选项-fGCC提供许多-f选项供你进行编译优化,例如,你可以使用-o选项来设置一个普通优化项,并关闭某一个技巧,例如:$ gcc -Wall -O3 -fno-inline-functions -o circle circle.c circulararea.c –lm选项-o3 –fno-inline-functions启用-o3组中的内联函数外的所有优化项。当然还有标志可以启用许多优化项,这些并不包含在任务-o级别中,例如 –funroll-loops,此选项替代loop语句,所有-f选项有上百个,在本节中无法一一描述,但本节的例子中提供了一个思路,如果你需要某几个编译器特性, 阅读全文
posted @ 2011-05-07 23:49 Socrates 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 18.6 优化GCC有很多技术可以使用执行文件生成更快更小,这些技巧趋向于减少程序与机器码间的逐字通信速度,它可能使用调试变得很困难,通常用于程序已经被测试和调试过之后。有两种优化选项,你可以通过-f开始的选项来单独地使用它们,例如-fmerge-constants,它将使用编译器将相同的常量放置在一个通用的地址,甚至交叉于不同的源文件,也可以使用-o选项(-o0, -o1, -o2和-o3)来设置优化级别,它可以一次性启用许多优化技巧。18.6.1 选项-O的级别每一个-o选项代表许多独立的优化技巧,-o优化级别是累加的,-o2包含了-o1中的所有优化项,-o3包含-o2, 想了解不同级别的 阅读全文
posted @ 2011-05-03 23:45 Socrates 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 18.5 编译警告当编译一个C程序时,有两类麻烦,一是错误信息,这使用你不能完成编译;另一种是警告,它提示你应该遵循严格的标准,便不会中止编译,你也可以不用理会驼些告警,直接运行程序,但这不是一个好主意。GCC提供非常好的警告控制,例如,你不喜欢区分错误和警告,可以使用-Werror选项使用GCC在出现任务警告时停止编译,就跟出现错误一样。其他的选项支持古老的或非标准的告警控制。使用选项-W可以启用GCC个别的告警,例如,选项-Wswitch-default提示GCC当使用了switch语句,但没有带default标签时出现一个警告。使用GCC中的这些警告最简单的方法是在命令行中使用-Wall 阅读全文
posted @ 2011-05-02 11:20 Socrates 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 18.4 C方言当编写一个C程序时,首先要做的一件事是确定在多种C的定义中遵循哪一种,GCC的默认方言版本为“GNU C”,它在很大程度上为ISO/IEC 9899:1900标准,以及它发布的勘误表和许多语言扩展,这些扩展一部分已经包含在C99中标准化了,例如复杂浮点类型和long long整形,另外一部分特性没有被采用,例如,复杂整形类型和长度为0的数组,全部的扩展列表在GCC文档中有提供。要关闭所有GNU C的扩展,可以使用命令行选项 –ansi, 本书以ISO/IEC 9899:1999 (或C99)来进行描述。GCC语言标准化选项有:-std=iso9899:1990, -std=c8 阅读全文
posted @ 2011-05-02 00:09 Socrates 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 18.3.4 独立程序除去在GCC命令行中指定的object文件和库文件外,连接器必须连接一些程序启动时所需要的与操作系统强相关的代码,这些代码存在在标准obect文件ctr0.o中,其包含执行程序的入口点(crt代表”C runtime.”),在大多数系统上,GCC也使用默认的object文件crtbegin.o和ctrend.o来连接初始代码。然而,如果你在写一个独立程序,例如操作系统或一个嵌入式程序,可以使用-ffreestanding和-nostartfiles选项来指示GCC不连接这些代码,选项-nostdlib允许你不使用C标准库,如果你使用此选项,你必须提供程序所使用的其他版本的 阅读全文
posted @ 2011-05-01 00:24 Socrates 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 18.3.3.3 动态链接和共享object文件共享库为特殊的object文件,它们可以在运行时被连接到程序中来,使用共享链接库具有许多优点:执行文件较小;共享模块允许更新;高效。创建一个共享object文件,可使用GCC的-shared选项目,输入必须是一个存在的object文件。下面是一个简单的例子:$ gcc -c circulararea.c$ gcc -shared -o libcirculararea.so circulararea.o上面第二条命令创建了共享object文件libcirculararea.so,将一个可执行程序与共享object文件连接,在命令和中像使用其他obj 阅读全文
posted @ 2011-04-25 00:30 Socrates 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 18.3.1.5 所有输出 GCC有另外一个选项-save-temps,可以便利地一次性获得所有中间输文件。当你使用此选时,GCC正常地进行编译和连接,但将会在当前目录下保存预处理的输出、汇编语句、object文件。使用-save-temps选项生成的文件名与源文件名相同,对于预处理输出、汇编语句、object文件,后缀分别为.i,.s和.o。18.3.1.6 无一输出如果使用-fsyntax-only选项,GCC将不会进行预处理、编译、装配、或连接,它仅仅测试输入文件的语法,具体可参见本章后面的“编译警告”一节。18.3.2 多个输入文件在第一章中,我们将circle.c分成两个文件,编译多 阅读全文
posted @ 2011-04-20 00:11 Socrates 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 18.3.1.4 连接 连接器将多个二进制的object文件连接成为一个可执行文件,在进程中,它完成使用外部引用来替换程序中本地对象的引用。连接器依据汇编器提供的符号表来完成这些工作。 此外,连接器必须为程序中使用的C标准库的函数添加代码,在连接的上下文中,一个库就是一系列object文件的集合,为了便于处理,它们以归档文件的形式被集合在一个独立的文件中。 大多数标准函数库通常在文件libc.a中(其中后缀.a代表“archive”),或者在一个共享的动态连接库libc.so中( 其中后缀.so代表“shared object”)。这些库通常在/lib/ 或/usr/lib中,或者在GCC默认 阅读全文
posted @ 2011-04-19 00:10 Socrates 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 18.3.1 进阶 下面的小节介绍GCC的选项,使用你可以控制编译过程的每个阶段:预处理、编译、装配和连接。你也可以执行单独的步骤来调用单独的工具,例如C预处理器cpp,汇编程序as,连接器ld,GCC也可被配置来使用指定主机上的外部程序,为了统一,本章描述如何执行这四步来控制程序。18.3.1.1 预处理 在将程序向实际的编译器提交前,预处理器执行指示符和扩展源代码中的宏,GCC通常不会保留预处理阶段的结果,但是你可以使用-E选项将预处理阶段输出保存下来以便以后诊断程序时使用。此选项将使用GCC在预处理完成后停止。预处理器直接将结果输出在标准输出设备上。除非你使用-o选项指定一个输出文件名。 阅读全文
posted @ 2011-04-17 23:29 Socrates 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 第三部分 基础工具第十八章 GCC的使用 本章介绍如何使用GCC将C的源代码编译为可执行程序,首先,我们介绍GCC基本的选项及编译的步骤,接着我们介绍如何使用GCC的警告选项来检查程序,最后,我们总结编译优化的选项。 本章提供最基本的GCC知识给你,如果更细节的知识,如体系结构的细节或系统的特殊选项,这些基本的方向将告诉你如何在GCC手册中查找你想要的。手册在GCC发布版本中以文本的形式包含。你也可以查看HTML格式的文档,路径为:http://gcc.gnu.org/onlinedocs/。18.1 GNU编译器 GCC以前为“GNU C Compiler”的缩写,自从它出现以后,就开始支持 阅读全文
posted @ 2011-04-16 00:16 Socrates 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 第一部分的暂停一段时间再翻译,为了方便编译和调试,先把第三部分讲了,呵呵。 阅读全文
posted @ 2011-04-16 00:06 Socrates 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 从过年收假到昨天,每天都在公司待着,今天,终于可以休息下了,从未有过的疲惫感,一下子席卷而来。 这段时间一直在加班,特别是本周,连续三个通宵工作,而且均是从早上九点到第二天下午下班才回家,不通宵时也是凌晨一二点才回家,现在终于告一段落了。忙碌的工作让人无暇思考,今天静静地思考了下,为什么会这样呢?总结了下,应该有以下原因:1. 不合理的工作量估计和开发计划 本次中移动KPI需求估计工作量为3.5K,实际编码仅C程序为5K+,还不考虑sql等其他强相关工作;计划两周完成并交付补丁版本,从实际开发情况来看,我用去2周时间编写完5K代码并调通,完成UT,但这仅仅全部工作的1/2,剩下1/2中补丁制作 阅读全文
posted @ 2011-03-06 14:12 Socrates 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 本文来自CSDN博客:http://blog.csdn.net/wujian53/archive/2006/05/03/706975.aspx前些天,编程序是用到了很久以前写的C程序,想把里面的函数利用起来,连接发现出现了找不到具体函数的错误:以下是假设旧的C程序库C的头文件/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_extern int add(int x, int y);#endifC的源文件/*-----------c.c--------------*/int add(int x, int y){return x+y 阅读全文
posted @ 2011-02-28 17:11 Socrates 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 版本一:#include <stdio.h>#include <stdlib.h> #include <memory.h> /*使用编译器默认对齐方式*/typedef struct tagInfo{ int iNum; char szName[10]; int iAge;}stINFO;stINFO gstMessage[] = { {10, "liming", 100}, {20, "zhangsan", 200}, {30, "jack", 300}};stINFO gstSubMessage 阅读全文
posted @ 2011-02-18 00:44 Socrates 阅读(205) 评论(0) 推荐(0) 编辑
摘要: #pragma pack目录一、n字节的对齐方式 二、#pragma pack(n) 对齐用法详解一、n字节的对齐方式 VC对结构的存储的特殊处理确实提高CPU存储变量的速度,但是有时候也带来了一些麻烦,我们也屏蔽掉变量默认的对齐方式,自己可以设定变量的对齐方式。 VC中提供了#pragma pack(n)来设定变量以n字节对齐方式。n字节对齐就是说变量存放的起始地址的偏移量有两种情况:第一、如果n大于等于该变量所占用的字节数,那么偏移量必须满足默认的对齐方式,第二、如果n小于该变量的类型所占用的字节数,那么偏移量为n的倍数,不用满足默认的对齐方式。结构的总大小也有个约束条件,分下面两种... 阅读全文
posted @ 2011-02-18 00:32 Socrates 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 异步操作:计算机系统事件在不可预测的时间,以不可预测的顺序产生。并发:指在相同的时间帧内对资源的共享。UNIX实现并发执行的传统方法是用户通过调用fork函数创建多个进程;相同祖先的进程通过管道(pipe)进行通信;没有相同祖先的进程通过:信号、FIFO、信号量、共享的地址空间、消息进行通信; 阅读全文
posted @ 2011-02-13 23:05 Socrates 阅读(111) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页