c++
文章平均质量分 69
newrtc
这个作者很懒,什么都没留下…
展开
-
AddressSanitizer 查找内存问题
服务器开发,有些时候遇到很奇怪的问题,可能运行几个周会出现一次异常,有些内存问题可以借助AddressSanitizer 定位centos g++版本切换https://blog.csdn.net/liuhongxiangm/article/details/124129742这个方法只是临时生效我是在.bashrc里加了source /opt/rh/devtoolset-10/enableAddressSanitizerAddressSanitizer 是一个性能非常好的C/C++ 内存错误原创 2022-04-26 14:19:04 · 391 阅读 · 0 评论 -
Linux makefile 教程 非常详细,且易懂
http://blog.csdn.net/liang13664759/article/details/1771246 最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看转载 2012-12-31 17:12:02 · 1264 阅读 · 0 评论 -
23种设计模式UML图
http://blog.csdn.net/bwwlpnn/article/details/7421628转载 2013-02-25 09:13:25 · 684 阅读 · 0 评论 -
关于struct msghdr和struct cmsghdr
http://blog.csdn.net/wsllq334/article/details/6977039理解struct msghdr当我第一次看到他时,他看上去似乎是一个需要创建的巨大的结构。但是不要怕。其结构定义如下:struct msghdr { void *msg_name; socklen_t msg_namelen;转载 2013-03-01 14:16:23 · 1029 阅读 · 0 评论 -
TinyXML入门教程 1
http://www.cnblogs.com/peterzb/articles/1456371.html什么是XML? 1文档类 2创建文档对象 3输出文档对象 3保存文档对象 4返回第一个根元素 5声明类 5注释类 6元素类 6节点名 6父节点 6子节点 7编辑子节点 7同级节点 7遍历元素 8元素属性 8元素函数总结 9属转载 2013-03-18 17:50:00 · 711 阅读 · 0 评论 -
c++ operator重载的例子
#include using namespace std;class A{public:A(double _data = 0.0):data(_data){}A& operator = (const A& rhs){data = rhs.data;return *this;}friend A operator + (const A& lhs,cons转载 2013-03-21 09:41:44 · 713 阅读 · 0 评论 -
二叉树详解
树因为现实世界中存在这“树”这种结构——族谱、等级制度、目录分类等等,而为了研究这类问题,必须能够将树储存,而如何储存将取决于所需要的操作。这里有个问题,是否允许存在空树。有些书认为树都是非空的,因为树表示的是一种现实结构,而0不是自然数;我用过的教科书都是说可以有空树,当然是为了和二叉树统一。这个没有什么原则上的差别,反正就是一种习惯。二叉树二 叉树可以说是人们假想的一个模型,因此,转载 2013-03-21 09:46:58 · 747 阅读 · 0 评论 -
右左法则----复杂指针解析
感谢 http://blog.csdn.net/supermegaboy/article/details/4854965首先看看如下一个声明: int* ( *( *fun )( int* ) )[10]; 这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。 C/C++所有转载 2013-04-10 17:58:49 · 512 阅读 · 0 评论 -
数组的指针、指针数组以及指向指针的指针
http://blog.csdn.net/max__payne/article/details/1858899数组的指针、指针数组以及指向指针的指针 考虑数组的指针的时候我们要同时考虑类型和维数这两个属性。换一句话,就是说一个数组排除在其中存储的数值,那么可以用类型和维数来位置表示他的种类。A)一维数组 在c和c++中数组的指针就是数组的起始地址(也就第一个元素转载 2013-03-28 13:39:21 · 654 阅读 · 0 评论 -
Reactor模式
http://blog.csdn.net/hackyz/article/details/5027352前面讲到,整个libevent本身就是一个Reactor,因此本节将专门对Reactor模式进行必要的介绍,并列出libevnet中的几个重要组件和Reactor的对应关系,在后面的章节中可能还会提到本节介绍的基本概念。1 Reactor的事件处理机制首先来回想一下普通函数转载 2013-07-23 08:50:37 · 721 阅读 · 0 评论 -
socket链接的关闭close和shutdown的区别_TIME_WAIT和CLOSE_WAIT什么时刻出现_如何处理
TCP主动关闭连接 appl: close(), --> FIN FIN_WAIT_1 //主动关闭socket方,调用close关闭socket,发FIN //对方操作系统的TCP层,给ACK响应。然后给FIN转载 2013-09-15 08:41:27 · 3730 阅读 · 0 评论 -
64位 Linux 编译32位应用程序
以 ubuntu 12.04 为例: uname -p 结果:x86-64, 确认是64位环境。 ubuntu 中需要安装以下包: Shell代码 $ apt-get install build-essential module-assistant $ apt-get install gcc-multilib g++-multilib原创 2014-06-19 15:54:04 · 834 阅读 · 0 评论 -
C++处理异常 try,catch,throw
异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制。也许我们已经使用过异常,但是你会是一种习惯吗,不要老是想着当我打开一个文件的时候才用异常判断一下,我知道对你来说你喜欢用return value或者是print error message来做,你想过这样做会导致Memory Leak,系统退出,代码重复/难读,垃圾一堆…..吗?现在的软件已经是n*365*24小时的转载 2012-11-23 11:00:06 · 6622 阅读 · 2 评论 -
Boost智能指针——scoped_ptr
Boost智能指针——scoped_ptrboost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include #include #include class implementation{public: ~im转载 2012-11-22 20:05:31 · 670 阅读 · 0 评论 -
UDT源码剖析(三):UDT::startup()过程代码注释
调用路线UDT::startup()->CUDT::startup()->CUDTUnited::startup()1int startup()2{3 return CUDT::startup();4转载 2012-09-19 17:17:38 · 3636 阅读 · 0 评论 -
win32,win64编程永恒;语言编程需要注意的64位和32机器的区别
一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:16位平台char 1个字节8位short 2个字节16位int 2个字节16位long 4个字节32位指针 2个字节32位平台转载 2012-06-29 10:48:56 · 684 阅读 · 0 评论 -
HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,malloc,new 的异同
1. 首先我们来看HeapAlloc:MSDN上的解释为:HeapALloc是从堆上分配一块内存,且分配的内存是不可移动的(即如果没有连续的空间能满足分配的大小,程序不能将其他零散的 空间利用起来,从而导致分配失败),该分配方法是从一指定地址开始分配,而不像GloabalAlloc是从全局堆上分配,这个有可能是全局,也有可能是 局部。函数原型为:[cpp] view p转载 2012-07-16 09:57:48 · 649 阅读 · 0 评论 -
windows多线程
多线程概述 进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。 线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说main或WinMain函数,将程序的转载 2012-08-01 09:34:27 · 2181 阅读 · 0 评论 -
SCTP编程
http://blog.chinaunix.net/space.php?uid=8118579&do=blog&id=20341191. 简介SCTP是为了在IP网上传输信令而由IETF的信令传输工作组(SIGTRAN)提出的传输层协议(RFC2960,RFC4960)。 和TCP,UDP相比, UDP是无连接的传输协议,它能满足低延迟的要求,但是它却无法保证可靠传输。TCP能保证转载 2012-08-21 09:49:52 · 1540 阅读 · 0 评论 -
译: Code::Blocks手册
译: Code::Blocks手册 使用篇 原手册下载:http://www.codeblocks.org/docs/manual_en.pdf 译者:JGood(http://blog.csdn.net/Jgood) 译者言:工欲善其事,必先利其器。一个好的工具能事半功倍。写程序时,特别是写C++程序,大部分人脑子里想到的第一个工具就是VisualStud转载 2012-08-28 21:49:28 · 1608 阅读 · 0 评论 -
TCP/UDP相关知识总汇
TCP如何保证可靠传输的?确认机制:保证每个数据包都能收到,差错检验:保证数据包的正确,流量控制:保证接收方不会溢出。顺序编号:保证传输的有序性 1、TCP/IP的可靠传输服务五个特征:面向数据流、虚电路连接、有缓冲的传输、无结构的数据流、全双工的连接。 2、TCP采用了具有重传功能的肯定确认技术作为可靠数据流传输服务的基础。 3、为了提高数据流传输过程转载 2012-09-19 14:45:05 · 1117 阅读 · 0 评论 -
UDT协议-基于UDP的可靠数据传输协议
http://blog.csdn.net/iiprogram/article/details/16644971. 介绍随着网络带宽时延产品(BDP)的增加,通常的TCP协议开始变的低效。这是因为它的AIMD(additive increase multiplicative decrease)算法彻底减少了TCP拥塞窗口,但不能快速的恢复可用带宽。理论上的流量分析表明TCP在转载 2012-09-19 16:28:41 · 5365 阅读 · 0 评论 -
UDT源码剖析(四):UDT的GC线程相关过程代码注释
随着UDT::Startup()的启动,GC线程也随之运行了。GC主要关注的就是UDTSocket的释放,下面我们来看看这个GC线程是怎么实现的。查看源代码打印帮助1#ifndef WIN322 void* CUDTUnited::garbageCollect转载 2012-09-19 17:18:40 · 4183 阅读 · 1 评论 -
UDT源码剖析(五):UDT::cleanup()过程代码注释
调用路线UDT::cleanup()->CUDT::cleanup()->CUDTUnited::cleanup()1int CUDTUnited::cleanup()2{3 // 锁保护4转载 2012-09-19 17:19:19 · 2802 阅读 · 0 评论 -
UDT源码剖析(六):UDT::socket()过程代码注释
调用路线UDT::socket()->CUDT::socket()->CUDTUnited::newSocket()1UDTSOCKET CUDT::socket(int af, int type, int)2{3 // 如果垃圾收集没启动转载 2012-09-19 17:19:58 · 4615 阅读 · 0 评论 -
UDT源码剖析(一):UDT自带例程sendfile注释
#ifndef WIN32 #include #include #else #include #include #endif#include #include #include #include using namespace std;#ifndef WIN32void* sendfile(void*);#转载 2012-09-19 17:15:23 · 19264 阅读 · 2 评论 -
UDT源码剖析(二):UDT自带例程recvfile注释
#ifndef WIN32 #include #include #else #include #include #endif#include #include #include #include #include using namespace std;int main(int argc, char* argv转载 2012-09-19 17:16:13 · 4542 阅读 · 0 评论 -
C++内存分配秘籍—new,malloc,GlobalAlloc详解
C++内存分配秘籍—new,malloc,GlobalAlloc详解 http://www.cnblogs.com/gaochaooo/archive/2009/09/03/1559764.html C++内存分配秘籍—new,malloc,GlobalAlloc详解转载 2012-07-06 10:34:16 · 515 阅读 · 0 评论