
C++开发
文章平均质量分 79
Garfier
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
开源BT客户端程序arctic代码阅读笔记
arctic 是一个基于C++的libtorrent的BT客户端开源项目,arctic的界面比较简单,它主要关注的是低内存的消耗和性能的提升。项目使用了boost C++库,LibTorrent库,zlib库。主要研究的核心是LibTorrent库。arctic界面没有使用MFC,而是直接使用的Windows API开发的界面。 arctic 代码结构如图:原创 2010-05-12 19:59:00 · 3645 阅读 · 5 评论 -
用 OProfile 彻底了解性能
developerWorks 中国Linux文档库用 OProfile 彻底了解性能识别现实系统中的性能瓶颈PrPrasanna S. Panchamukhi, 开发工程师, Linux Technology Center, IBM India Software Labs简介: 由于在硬件和软件之间有一些意料之外的交互转载 2013-10-08 11:23:41 · 2024 阅读 · 0 评论 -
boost c++ lib on linux(5) - 小练习——获取网页内容并提取有用信息
2013年来啦,新年伊始,写一篇博客,把之前学习boost的一个小练习晒晒。上班路上还自行车一直是我比较困扰和蛋疼的事,每次骑到公司,附近的还车点都满了,又不知道附近哪里还有空位,只能盲目的寻找,不知屌丝的狼狈你可懂。于是开始想办法怎么弄到自行车还车点的信息,好在杭州官方有在线查询的网站,就想分析一下,找到请求信息的url。PS:网站设计的相对简陋,被我找到请求的url了。喏,Look!(ur原创 2013-01-04 20:26:38 · 2867 阅读 · 0 评论 -
2013年新年目标
技术:1、Python语言、Ruby语言深入2、C++ Linux开发3、ISearch源代码学习、应用开发、性能优化4、Linux学习,内核,性能诊断技术读书:1、《深入理解Linux内核》2、《UNIX环境高级编程》3、《黑客与画家》原创 2013-01-02 14:37:47 · 1393 阅读 · 1 评论 -
gdb调试工具使用(1)
今天开始学习在linux下面进行c++代码的调试方法的学习。使用GDB调试c++代码是unix环境c++编程的基本技能。对于长期在windows平台下面从事c++编程的程序员来说,在linux环境下面进行gdb调试确实有点难为人,但是gdb本身是一个功能强大的代码调试工具,只要多使用,熟悉了基本的命令使用方法和windows平台下IDE的调试相关功能有个很好的影射,那么在linux下面进行c++开原创 2012-11-17 16:58:46 · 6286 阅读 · 0 评论 -
boost c++ lib on linux(4) - thread同步条件变量学习——生产者消费者队列
利用最近一周晚上下班回来的闲散时间继续学习boost线程库的使用。在我的上一篇文章《boost c++ lib on linux(3) - thread库的使用初学》中记录了boost线程库的基本使用方法和编译链接,参杂了一些线程互斥变量,本地存储的类的使用。本文记录了本周我学习线程同步条件变量的使用实例,主要实现了生产者消费者模型的队列使用过程,通过多线程条件变量实现生产者消费者模型队列。这原创 2012-11-10 14:33:45 · 3228 阅读 · 2 评论 -
boost c++ lib on linux(3) - thread库的使用初学
今天学习了一下boost thread库的使用,只是粗浅的学习了怎么使用boost thread的库函数构建多线程的c++程序,了解了基本的thread创建,线程同步以及线程本地存储的使用。都在一个代码实例中进行了 验证。其中还有一个条件变量的使用在不好在一个代码中实现,以后有时间在编写验证一下。源代码/*******************************************原创 2012-10-14 15:57:08 · 3062 阅读 · 0 评论 -
STL vector使用bind2nd函数查找和删除元素
在小需求代码review中看到有对vector对象调用find_if函数,并通过bind2nd来帮顶一个自定义的一个比较器,用于在vector中查找符合特定条件的元素同过find_if返回元素的迭代器。于是上网找了一下关于find_if和bind2nd的用法,学习一下。bind2nd和bind1ndbind2nd和bind1nd是用于将二元运算转换为一元运算子,二者不同在于将要比较的值最为原创 2012-10-11 20:24:49 · 2826 阅读 · 0 评论 -
Automake使用第三方库的方法
初学automake,只是使用简单的helloworld程序走了一遍流程,现在有个项目需要,自己试着使用automake自己编译了一下,主要遇到的问题是有第三方的库,例如pthread,alog,anet等库的时候就不知所措了,不知道在哪里添加相应的配置信息才能在自动生成的makefile文件中加入第三方库的引用信息,使得编译的时候能够让编译器找到库文件。我的配置是这样的:在Makefil原创 2012-09-11 17:31:26 · 3702 阅读 · 0 评论 -
boost c++ lib on linux (1) - regex example with binary boost lib Regex
在上一篇boost学习文章《boost c++ library on linux初体验》中,主要讲了boost的非二进制库的使用,并实现了一个helloworld程序,此外还简单介绍了boost库的基本使用方法以及我在搭建自己的boost c++ on linux的编程环境过程中所遇到的问题和解决方案。在本篇文章中,简要记录一下boost c++官网Getting started文档中的boo原创 2012-07-23 22:04:15 · 2259 阅读 · 0 评论 -
boost c++ lib on linux(2) - lexical_cast字符串数值转换
在c语言中字符串数字之间有很多转换函数,这些函数名称和使用时很难记住,在boost c++中,提供了一个统一的字符转和数值之间的相互转换的工具lexical_cast,来统一操作,方便程序员快速实现字符串和数字之间的转换。代码实例:/*************************************************************************原创 2012-08-19 15:16:28 · 1584 阅读 · 0 评论 -
boost c++ library on linux 初体验
最近开始学习boost c++ library,并且打算用业余的时间长期坚持下去。再一个就是通过学习boost库练习在linux下面进行c++编程。今天记录一下boost的入门吧。首先,入门最好的材料就是boost官方网站上面的文档,在什么平台上,怎么开始都说的很清楚,而且很有条理,过程清晰。boost的库的压缩包直接可以从boost的官网上下载得到,下载后直接用unzip命令解压到/us原创 2012-07-22 22:42:35 · 5994 阅读 · 0 评论 -
宏与内联函数(面试常考)
<br />原文地址:http://blog.youkuaiyun.com/fisher_jiang/archive/2008/05/23/2472210.aspx<br /> <br />第一部分:宏<br />为什么要使用宏呢?<br />因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间转载 2011-05-19 21:53:00 · 788 阅读 · 0 评论 -
Windows 7 环境下基于原始套接字和ICMP的路由探测开发的问题【1】
<br />在Windows XP环境下开发的路由探测程序搬到Windows 7下面编译运行发现在recvfrom()调用后并没有收到应有的ICMP响应报文,问题困扰了我大概1天的时间,最后发现把代码放到XP下面编译可以,运行结果正确,到了Windows 7下面就是不行。通过Google得知,在Windows 7平台下,安全策略要比Windows XP严格许多,默认情况下,Windows 7的防火墙屏蔽了ICMP回显报文,也就是说,防火墙阻止了ICMP报文,所以在调用recvfrom函数的时候总是SOCKE原创 2011-01-09 20:25:00 · 2342 阅读 · 0 评论 -
VS2008中 ATL CLR MFC Win32 区别
ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用MFC,使用API函数编的程序。MFC、ATL和CLR是VC2005内置的3大库,涵盖了windows的各种开发方法和开发应用。当然关于C++开发的库不止这3个,不过这3个是微软推荐。从编程所处层次而言,WIN32为最底层,其次是MFC.然后是CLR.W转载 2010-05-17 16:55:00 · 1445 阅读 · 0 评论 -
Visual Studio 2008动态链接库编程
Visual studio 2008动态链接库的编程。 首先,新建动态链接库工程选择Win32 Project,点Ok。 Application Type选择Dll, Application options选择Empty project,Finish。 第二,新建dll.cpp文件,在文件中定义动态链接库导出函数,代码如下:_declspec(dll原创 2010-05-15 10:38:00 · 3291 阅读 · 0 评论 -
n的全排列递归算法
void Dfs(int a[], int end, int start){ if (start == end-1) { for (int j = 0; j<end; j++) printf("%d ",a[j]); printf("/n"); return; } for (int j = start; j<end ; j++) { int te原创 2010-05-13 23:22:00 · 1065 阅读 · 0 评论 -
Linux C++程序进行性能分析工具gprof使用入门
性能分析工具软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键。这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是要重点测试版本的性能表现和稳定性的。对于软件测试过程中发现的性能问题,如何定位有很多的方法。基本的方法可能是开发者对代码进行review,或者是使用一些工具对代码进行性能分析。常见的性能分析tuni原创 2013-10-09 10:23:03 · 18863 阅读 · 4 评论