snprintf的用法 http://www.cppblog.com/sandy/archive/2006/09/29/13133.html众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf.snprintf(_snprintf)的声明是这样的int _snprintf( char *buffer, size_t count,
memset函数使用 void *memset(void *s, int ch, unsigned n);memset原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。
memcpy的函数内部实现 memcpy和memmove函数的实现,需要注意memmove的覆盖问题,还有指针类型需要考虑。下面的例子中,先给出了错误的例子,而后给出了正确的例子,引以为戒!区别:两个函数都是进行n字节内存内容的拷贝,入口参数和返回参数也都一样,可是这两个函数在内部实现上是有一定区别的,这主要是因为dest内存区域和src内存区域可能有一下四种不同的情况,注意count的影响:src的内存区域和d
调制modulation的概念 调制技术(modulation technology)(转载)(2008-08-28 09:23:37)转载标签:杂谈分类: 技术文摘 调制技术是把基带信号变换成传输信号的技术。基带信号是原始的电信号,一般是指基本的信号波形,在数字通信中则指相应的电脉冲。在无线遥测遥控系统和无线电技术中调制就是用基带信号控制高频载波的参数(振幅、
Hub、交换机和路由器 交换机和路由器的不同点:(1)工作层次不同 最初的的交换机是工作在OSI/RM开放体系结构的数据链路层,也就是第二层,而路由器一开始就设计工作在OSI模型的网络层。由于交换机工作在OSI的第二层(数据链路层),所以它的工作原理比较简单,而路由器工作在OSI的第三层(网络层),可以得到更多的协议信息,路由器可以做出更加智能的转发决策。 (2)数据转发所依据的对象不同
通信基本名词 FW、IDS、ISP、ICP解释 (1) FW:Firewall防火墙最初的设计思想是对内部网络总是信任的,而对外部网络却总是不信任的,所以最初的防火墙是只对外部进来的通信进行过滤,而对内部网络用户发出的通信不作限制。当然目前的防火墙在过滤机制上有所改变,不仅对外部网络发出的通信连接要进行过滤,对内部网络用户发出的部分连接请求和数据包同样需要过滤,但防火墙仍只对符合安全策略的通信通过,也可以说具有“单向导通”性。(一)内部
网络地址、广播地址、划分子网 http://apps.hi.baidu.com/share/detail/168996172.64.3.0/24划分成3个子网,求网络地址、广播地址、子网掩码、有效IP地址... 例题:172.64.3.0/24划分成3个子网,求网络地址、广播地址、子网掩码、有效IP地址。解题:1、确定子网位:子网位等于2的N次方大于等于3 因此可以确定子网位是22、找到主机位
typeid的作用 http://www.cppblog.com/smagle/archive/2010/05/14/115286.html在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”
公有继承、保护继承和私有继承 http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html C++继承:共有,私有,保护公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类
常量指针和指针常量 http://www.cnitblog.com/mantou/archive/2005/10/05/3074.aspx 常量指针与指针常量 首先,我告诉大家一个小规则,就是像这样连着的两个词,前面的一个通常是修饰部分,中心词是后面一个词,怎么说呢。就像这里的常量
指针数组和数组指针 http://learn.akae.cn/media/ch23s06.html http://www.cppblog.com/cooleaf/archive/2006/05/19/7418.html 指针数组和数组指针 呵呵,实在是
crontab命令 Linux & Unix shell 编程指南 3.1 cron命令2009-12-20 21:36后台执行命令cron :系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月 中的不同时段运行。At at :命令。使用它在一个特定的时间运行一些特殊的作业,或
为什么static数据成员必须在类外初始化 1.避免重复定义和初始化<<c++ primer>>说在类外定义和初始化是保证static成员变量只被定义一次的好方法。但,为什么static const int就可以在类里面初始化呢?想起C中一个函数里定义一个static变量是为了保证只初始化一次。那么,是否可以这样理解:static数据成员在类外定义和初始化是为了保证只被定义和初始化一次,这样编译器就不必考虑类的函数里面第一个对static变量的’=’操作是赋值还是初始化了。
空类默认产生的类成员函数 定义一个空的C++类,例如class Empty{}一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于class Empty{public:Empty(); // 缺省构造函数Empty( const Empty& ); // 拷贝构造函数~Empty(); // 析构函数Empty&
MFC消息映射机制 windows应用编程时,当有消息产生时,操作系统会把这条消息放到应用程序的消息队列中,应用程序通过getmessage函数从这个队列中取出一条具体的消息,并通过DispathMessage把消息交给操作系统,由操作系统来调用应用程序的窗口过程,即窗口过程函数wndproc进行处理。该函数利用switch-case结构来对消息进行判别并分类处理。然而在MFC中,并不是按这种途径来进行处理的。MFC只要按照上述步骤,定义了与消息有关的三处消息后,就可以实现消息的响应处理。MFC中采用的
分配内存的方法总结 堆和栈的区别 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变
TCP连接及结束过程 关于TCP连接建立及结束,可以参考http://wellya.net/read-htm-tid-18848.html作者写的不错,但是注意下面的TCP结束过程图解有一点点问题,TCP结束时是客户端先发出请求,因此把图中的箭头修改一下即可。 TCP连接建立及结束过程详解TCP连接建立及结束过程详解 图示 图解 图例 【简 介】 TCP连接是面向可靠的连接,它通过建立可靠连接实现数据的可靠传输,在应用程序中被广泛使
二叉树以及链表逆转一些程序 下面这篇文章写的比较好,查找链表逆转方法时找到了,看本文中的方法时终于看懂,主要是结合作者变量名的定义以及画图就看懂了,看来对变量起一个易于理解的名字真的很重要,即使没有注释,也看的比有注释的某些程序更好。http://www.nowamagic.net/algorithm/algorithm_RecentCommonAncestor.php 题目:要求寻找二叉树中两个节点的最近的公共祖先,并将其返回。view sourceprint?1classNode
判断链表是否有环以及找出环的入口点知识总结 下面这篇博客写的非常好,看这个就可以了:http://www.cppblog.com/humanchao/archive/2008/04/17/47357.html判断单链表是否存在环,判断两个链表是否相交问题详解有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每
求数组中和为固定数的所有对 方案一: int iArrary[10] = {3,4,5,634,567,23,45,6,7,10};//先排序,就暂时选个简单的来排序吧 for(int i = 0; i { int j; int swap; int MinIndex = i; for(j = i+1; j { if(iArray[MinIndex] > iArray[j]) MinIndex = j; else cont