C++
文章平均质量分 76
fenghaibo00
80后程序员
展开
-
C++中析构函数为虚函数时调用发生了什么变化
昨天去XX公司面试,面试官问了一个关于C++类析构函数为虚函数时,如果是父类的指针用子类来new,如果发生析构时,析构函数是virtual与不是virtual有什么区别。当时答的不好,回来总结了一下,在机器上实现了一遍,终于搞明白了。记录下来,以后遇到这种情况自己一定不要犯错了原创 2011-08-16 18:20:04 · 3496 阅读 · 1 评论 -
OpenSSL库的RSA使用(下)-rsa函数方式
本文上接:OpenSSL库的RSA使用(上)-EVP方式,URL:http://blog.csdn.net/fenghaibo00/article/details/172483813 RSA函数方式3.1 步骤i. 生成RSA的key,包括三部分:公钥指数、私钥指数和模数(这些需要先了解一下RSA算法的原理)ii.原创 2013-12-10 19:55:49 · 40545 阅读 · 6 评论 -
Linux代码性能检测利器(四)- 获取分析结果
好了,最为关键的一章来了,分析完了怎么获取分析的结果呢?OProfile为了保持了极低的系统开销,在运行过程中不会有数据送到分析器中,因此如果你需要获取分析数据时,第一步就是强制分析数据转存:opcontrol --dump进行完数据转存,接下来就该opreport、opannotate和opgprof上场了。1.1 规格参数说明所有的分析工具都需要一个分析规格(profil翻译 2013-12-10 20:11:55 · 3819 阅读 · 0 评论 -
OpenSSL库的RSA使用(上)-EVP方式
1 RSA加解密方式介绍使用OpenSSL的RSA方式加解密有两种方式,一种是使用EVP系列函数,这些函数提供了对底层加解密函数的封装;另外一种是直接使用RSA相关的函数进行加解密操作。如果是标准应用,如使用RSA公钥加密,私钥解密,使用EVP函数比较方便,如果有特殊应用,如私钥加密,公钥解密,EVP函数会有问题,可以直接使用RSA提供的函数。 不过Ope原创 2013-12-10 18:33:26 · 27281 阅读 · 4 评论 -
Linux代码性能检测利器(一)--OProfile概述
OProfile是什么OProfile是一个linux 2.2/2.4/2.6系统(支持多CPU架构)上的分析系统,它可以分析一个正在运行的系统的所有部分,从内核(包括模块和中断处理例程)到共享库(shared libraries),再到二进制文件(可执行文件)。它以低开销悄无声息地运行在后台,收集系统信息。这些特点决定了它是一个非常理想的工具来分析整个系统以查找性能瓶颈在哪里。 工作原理原创 2013-06-02 17:10:14 · 2430 阅读 · 0 评论 -
Linux代码性能检测利器(二)--OProfile之代码分析示例
对于做应用级别(相对内核开发)的开发,如果只想快速找到代码性能瓶颈而对OProfile的工作原理不感兴趣,只看该示例应该就足够了。假如我们的代码文件是/home/leo/oprofile_test/main.cpp,内容是:#include #include #include class FileOp{ public:原创 2013-06-02 17:20:55 · 5262 阅读 · 0 评论 -
配置开发支持高并发TCP连接的Linux应用程序全攻略
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量 的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许 当前用户进程打开的文件数限制:[speng@as4 ~]$ uli转载 2013-03-19 23:40:28 · 909 阅读 · 0 评论 -
“make: 警告:检测到时钟错误。您的创建可能是不完整的”解决方法
现象: 工程每次make后,都会出现"make: 警告:检测到时钟错误。您的创建可能是不完整的"的警告,在网上查了一下,原因是有文件的时间比当前时间还要晚(比如现在系统时钟时间是2013年1月24日 12:00:00, make所依赖的文件中存在文件的时间比这个时间还晚,比如是2014年2月21日 12:05:00),可以用"touch *"来更新文件时间,进而解决这个问题.原创 2013-01-24 12:51:37 · 44631 阅读 · 4 评论 -
C++系列--异常处理
1 Exception1.1 抛出异常1. 异常对象的抛出与捕获的方式与给函数传参一样,一个异常对象可以是能够被传递给非引用参数的类型,这意味着该对象类型必须可以被拷贝。2. 异常对象在throw对象的一个拷贝,所以这个对象类型必须是可以被拷贝的。3. 如果异常类型有继承关系,如:类B继承于类A, 则:A exc;B *p = &exc;原创 2012-09-26 13:57:55 · 1624 阅读 · 0 评论 -
#pragmma once与#ifndef #define #endif
昨天去YY公司面试,面试官问了一下问题难住了我,问我#pragmma once与条件编译的区别,这两种方式我都用过,是防止一个头文件被重复include。但是区别,还真的没有认真地去看过。回来查了一下,百度百科上面写的很详细,另外我还问了一下面试官它们的区别,现在总结一下:*原创 2011-08-27 22:20:57 · 1174 阅读 · 1 评论 -
深入浅出C++之private/public/protected
原文地址:http://blog.csdn.net/xushiweizh/article/details/1370337已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类,其继承方式如下所示: cl转载 2011-08-17 23:58:52 · 581 阅读 · 0 评论 -
Linux代码性能检测利器(五)-OProfile分析结果误区
对于OProfile的分析结果,需要100%精确分析的童鞋可能会失望,CPU的性能计数器本身不是100%精确,而OProfile依靠它的结果进行分析,所以结果也不可能是100%精确的,但是绝大部分的情况都是可靠的。如下面的代码示例:循环体的最后一句“除等”语句应该是最占用CPU资源的,但是分析的结果可能是这样的:这个问题时x86的硬件体系问题,当计数器计数溢出,翻译 2013-12-10 20:15:32 · 1262 阅读 · 0 评论