随笔分类 - C/C++
摘要:这两天线上的一个服务出现了内存问题,表现在使用top查看进程的RES会间断性的突然上升,而且从不下降。仔细review了线上的代码,没有发现内存泄漏,怀疑和glibc的内存分配机制有关,glibc并没有及时将内存释放给操作系统。可以自行使用如下的测试代码进行下验证,会发现使用默认的glibc和goo...
阅读全文
摘要:AQTime (有x64、win32的)进行内存泄露和资源泄漏监控http://wenku.baidu.com/view/9aa1c2afdd3383c4bb4cd2c1.htmlx64下载:http://downlite.net/lp.php?c=oc&n=AutomatedQA.AQTime.v6.21.400.x64.Cracked.WORKING-BRDWindows Leaks Detector(好象只有win32)http://sourceforge.net/projects/winleak/?source=dlp
阅读全文
摘要:用VC++6.0的编译环境,建的是win32 console application#include <stdafx.h>#include <string.h>#include <windows.h>DWORD ShowFileTime(PFILETIME lptime){ //文件时间结构 FILETIME ftLocal; //系统时间结构 SYSTEMTIME st; //调整为系统所在时区的时间 FileTimeToLocalFileTime(lptime,&ftLocal); //将文件时间转换为SYSTEMTIME格式,便于显示 File
阅读全文
摘要:http://blog.csdn.net/chenyujing1234/article/category/1147469/1
阅读全文
摘要:std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下std map内部数据的组织,std map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在std map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名
阅读全文
摘要:http://www.cnblogs.com/psunny/archive/2010/01/15/1648783.html
阅读全文
摘要:scons用户指南 翻译http://blog.csdn.net/andyelvis/article/category/948141官网文档http://www.scons.org/documentation.php=====================================UNIX系统开发-gcc参数详解[介绍]gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的
阅读全文
摘要:Protobuf语言指南l定义一个消息(message)类型l标量值类型lOptional 的字段及默认值l枚举l使用其他消息类型l嵌套类型l更新一个消息类型l扩展l包(package)l定义服务(service)l选项(option)l生成访问类本指南描述了怎样使用protocolbuffer语言来构造你的protocol buffer数据,包括.proto文件语法以及怎样生成.proto文件的数据访问类。本文是一个参考指南——如果要查看如何使用本文中描述的多个特性的循序渐进的例子,请在http://code.google.com/intl/zh-CN/apis/protocolbuffer
阅读全文
摘要:Eclipse IDE for c/c++ 可以设置变量匹配高亮显示颜色,如图(默认的看不清,很不习惯):在右边条边处点击右键出来“Preferences...”,打开里面即可设置c/c++occurrences 的颜色。
阅读全文
摘要:(本文章仅适用于C++程序)写服务程序时,如果需要提供命令行参数。传统的方法是手工解析argv参数,或者使用getopt函数。两种方法都比较费劲。使用Google gflags可以大大简化命令行参数处理。安装gflag从官方地址http://code.google.com/p/google-gflags/下载gflags并安装。比如我下载的是1.5版本。[yichi@yichi tmp]$ wgethttp://google-gflags.googlecode.com/files/gflags-1.5.tar.gz[yichi@yichi tmp]$ tar zxvf gflags-1.5.t
阅读全文
摘要:解决方法:1.删除掉旧工程(但不删除目录,仅从eclipse中删掉工程而已),新建个项目:file->new->c project->empty project ,工程名取跟之前的相同的,覆盖即可。其实主要是链接的问题,这里的方法比较简单。2.projrct-》properties-》c/c++ build --》Environment--》PATH 选replace native environment with specified one
阅读全文
摘要:c/c++中二进制是不直接支持的。要想输入二进制,可以用bitset<size_t N>进行转换输出。如下示例程序:#include<bitset>#include<iostream>int main(){int c=-1;std::bitset<sizeof(int)*8> a(c); std::cout<<a<<"\n";return 0;}或者如果是string类型字符串的话,可以使用 Convert.ToInt32("01010101", 2)。
阅读全文
摘要:试着看了一下Google Style的C++编码规范,先随手写了一个最简单的程序来试试Cpplit。代码如下————————————#include <iostream>using namespace std;int main() {cout << “Hello World!” << endl;return 0;}————————————运行指令————————————g++ main.cpp -o main./main————————————得到结果————————————Hello World!————————————运行Cpplint,得到的结果如下—
阅读全文
摘要:这两天,接到一个项目,需要在linux程序中调用远程的web应用,通过soap协议。开始上网查了下资料,发现了gsoap库这个好东东^_^。继续在网上搜索例子代码,发现基本都不可编译通过,于是便一边学习一边写了这个最简单的例子,希望对后来者起到一点帮助。对gsoap的简单介绍,请自己参阅http://gsoap2.sourceforge.net/ 下载相应的包,主要有2个工具和源代码: wsdl2h -o outfile.h infile.wsdl 实现wsdl文件到h文件的数据映射 soapcpp2 -c outfile.h生成相应的底层通信stub,strech程序下面这个简单的例子实现的
阅读全文
摘要:C/C++ SOAP工具包 gSOAP gSOAP一种跨平台的C和 C++软件开发工具包。生成C/C++的RPC代码,XML数据绑定,对SOAP Web服务和其他应用形成高效的具体架构解析器,它们都受益于一个XML接口。 这个工具包提供了一个全面和透明的XML数据绑定解决方案,Autocoding节
阅读全文
摘要:如果你知道 Tokyo Cabinet ,那么就应该知道 Kyoto Cabinet,因为他们都是同一个作者(平林幹雄)开发出来的 Key-Value 数据库。Kyoto Cabinet:a straightforward implementation of DBM,主页:http://fallabs.com/kyotocabinet/,演示文稿:http://www.slideshare.net/estraier/kyotoproducts-5886452。Tokyo Cabinet:a modern implementation of DBM,主页:http://fallabs.com/t
阅读全文
摘要:[作者]:滕昱,2005/3/30,0.1版本[版权声明]:此文档遵循GNU自由文档许可证(GNU Free Documentation License).任何人可以自由复制,分发,修改,不过如果方便,请注明出处和作者:)(1)导言:首先,我强烈建议大家阅读Richard Stevens著作《TCP/IP Illustracted Volume 1,2,3》和《UNIX Network Programming Volume 1,2》。虽然他离开我们大家已经5年多了,但是他的书依然是进入网络编程的最直接的道路。其中的3卷的《TCP/IP Illustracted》卷1是必读-如果你不了解tcp协
阅读全文
摘要:关于volatile关键字的解释一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) 3). 多线程应用中被几个任务共享的变量 回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。嵌入式系统程序员经常同硬件、中断、
阅读全文
摘要:下载cdt解压到插件目录后仍然提示错误: Cannot run program "gcc": ?????????¨?网上找了许久,试n种办法均不成。最后,还是用eclipse自己help -> New and insall software... -> Available Software Sites 在列表里找有没有http://download.eclipse.org/tools/cdt/releases/helios 如果没有就add,有就打勾给取个名cdt。然后在work with:type or select a site那选刚才取名的cdt
阅读全文