C/C++
文章平均质量分 67
needle2
这个作者很懒,什么都没留下…
展开
-
Valgrind介绍(转)
介绍 Valgrind 是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使用 情况,比如C 语言中的malloc和free或者 C++中的new和 delete。使用 Valgrind 的工具包,你可以自动的检测许多内存管理和线程的bug,避免花费太多的时间在bug寻找上,使得你的程序更加转载 2010-02-23 16:59:00 · 944 阅读 · 0 评论 -
C++模板使用介绍
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max(转载 2011-06-08 10:05:00 · 665 阅读 · 0 评论 -
如何设置socket的connect连接
1.首先将标志位设为Non-blocking模式,准备在非阻塞模式下调用connect函数2.调用connect,正常情况下,因为TCP三次握手需要一些时间;而非阻塞调用只要不能立即完成就会返回错误,所以这里会返回EINPROGRESS,表示在建立连接但还没有完成。3.在转载 2011-08-09 14:14:14 · 1932 阅读 · 0 评论 -
C++ Vector 使用心得
标准库Vector类型使用需要的头文件:#include Vector:Vector 是一个类模板。不是一种数据类型。 Vector是一种数据类型。一、 定义和初始化Vector v1; //默认构造函数v1为空Vector v2(v1);//v2是v1的转载 2011-08-16 11:09:52 · 1333 阅读 · 0 评论 -
经典字符串HASH函数
//1. PHP中出现的字符串Hash函数 static unsigned long hashpjw(char *arKey, unsigned int nKeyLength){unsigned long h = 0, g;char *arEnd=arK转载 2011-09-22 19:57:07 · 1032 阅读 · 0 评论 -
Visual Stdio 常用快捷键
调试快捷键F6: 生成解决方案Ctrl+F6: 生成当前项目F7: 查看代码Shift+F7: 查看窗体设计器F5: 启动调试Ctrl+F5: 开始执行(不调试)Shift+F5: 停止调试Ctrl+Shift+F5: 重启调试F9: 切换断点Ctrl+F9: 启用/停止断点Ctrl+Shift+F9: 删除全部断点F10: 逐过程Ctrl+F1转载 2011-11-04 14:09:59 · 696 阅读 · 0 评论 -
回调函数
简介 对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数转载 2011-12-01 09:46:47 · 1036 阅读 · 0 评论 -
Log4j.properties配置详解
一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和转载 2012-01-10 14:37:38 · 664 阅读 · 0 评论 -
应用 Valgrind 发现 Linux 程序的内存问题
转载自:http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环转载 2012-01-31 10:01:24 · 687 阅读 · 0 评论 -
你的密码安全吗?来用 GPU 暴力破解密码
转载自:http://www.cnbeta.com/articles/145526.htm这是一个相当有趣的小工具,能够让你用 GPU 暴力破解密码,从新闻中的描述,Radeon HD 5770 每秒可以进行33亿次的运算Radeon HD 5770能够在一秒钟之内破解一个五位数的密码 "fjR8n" ......如果你有四张HD 5970,那破解的速度将会转载 2012-02-06 11:01:54 · 3082 阅读 · 0 评论 -
zlib的uncompress函数出现Z_BUF_ERROR的原因
函数原型:int uncompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);函数说明:uncompress 函数将 source 缓冲区的内容解压缩到 dest 缓冲区。sourceLen 是 source 缓冲区的大小(以字节计)。注意函数的第二个参数 destLen 是传址调转载 2012-04-12 10:25:28 · 11821 阅读 · 1 评论 -
zlib 的使用
1. 下载zlib,附件是zlib 1.2.3 . linux中一般系统自带,可直接使用2. 解压代码,打开 .\projects\visualc6\zlib.dsw .3. Build : zlib Lib Debug / zlib Lib Release ,生成的zlib.lib/zlibd.lib .4. 在我们的工程中包含头文件 zlib.h / zconf.h ,和连接生成转载 2012-04-12 10:23:27 · 1764 阅读 · 0 评论 -
expected identifier before numeric constant 解决
enum ProxyType{ OTHERALL_TASK = 0, SPEECH_TASK = 3};以前上面的代码编译是没问题的,更新代码后,错误提示:BrType.hpp:632: 错误:expected identifier before numeric constantBrType.hpp:632: 错误:expected `}' before n转载 2012-06-28 15:19:32 · 7248 阅读 · 1 评论 -
expected unqualified-id before numeric constant问题原因
今天编译库的时候出现这个问题unqualified-id before numeric constant,是因为变量重复定义了,主要是变量与宏定义同名了,及以下模式:一个头文件定义一个接口体,class XXXClass{const static int MAX_PATTERN_NUM = 1024;} 然后在另外一个文件定义宏如下:#define MAX_PATTE原创 2012-06-28 15:21:33 · 19570 阅读 · 1 评论 -
关于URL编码
转载自:http://www.ruanyifeng.com/blog/2010/02/url_encoding.html 一、问题的由来URL就是网址,只要上网,就一定会用到。一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址“http://www.abc.com”,但是没有希腊字母的网址“http://www.转载 2012-09-14 15:03:13 · 1005 阅读 · 0 评论 -
遭遇std::bad_alloc,内存分配失败
<br />用C++的new操作符,分配内存,什么时候会失败?【转】<br />Effective C++ 中文第二版 50个有效改善程序设计效率的办法<br />条款7:预先准备好内存不够的情况<br />operator new在无法完成内存分配请求时会抛出异常(以前的做法一般是返回0,一些旧一点的编译器还这么做。你愿意的话也可以把你的编译器设置成这样。关于这个话题我将推迟到本条款的结尾处讨论)。大家都知道,处理内存不够所产生的异常真可以算得上是个道德上的行为,但实际做起来又会象刀架在脖子上那样痛苦。所转载 2010-12-15 16:55:00 · 15955 阅读 · 1 评论 -
Socket超时设置---select()的妙用
用过 WinSock API 网友们知道:WinSock 编程中有一很方便的地方便是其 息驱动机制,不管是底层 API 的 WSAAsyncSelect() 还是 MFC 的异步Socket类: CAsyncSocket,都提供了诸如 FD_ACCEPT、FD_READ、FD_CLOSE 之类的消息 供编程人员捕捉并处理。FD_ACCEPT 通知进程有客户方Socket请求连接, FD_READ通知进程本地Socket有东东可读,FD_CLOSE通知进程对方Socket已 关闭。那么,BSD Socket转载 2010-08-09 10:39:00 · 1687 阅读 · 0 评论 -
ACE_Message_Block介绍
ACE_Message_Block在Ace中用来表示消息的存放空间,可用做网络通信中的消息缓冲区,使用非常频繁,下面将在如下方简单的介绍一下ACE_Message_Block相关功能。1. 创建消息块 2. 释放消息块 3. 从消息块中读写数据 4. 数据的拷贝 5. 其它常用函数 1。创建消息块 创建消息块的方式比较灵活,常用的有以下几种转载 2010-03-08 14:40:00 · 793 阅读 · 0 评论 -
ACE中TCP通信
ACE中TCP通信概述:传输控制协议TCP(Transmission Control Protocol):TCP提供可靠的、面向连接的运输服务,用于高可靠性数据的传输。TCP协议的可靠性是指保证每个tcp报文能按照发送顺序到达客户端。Tcp通信过程一般为如下步骤:服务器绑定端口,等待客户端连接。客户端通过服务器的ip和服务器绑定的端口连接服务器。转载 2010-04-17 16:46:00 · 701 阅读 · 0 评论 -
ACE读取ini格式的配置文档
ACE读取ini格式的配置文档不多说了,功能很清楚,从ini格式文档读取配置信息进来。不过在使用中发现好像读进来的数据只能是字符串类型(get_integer_value好像不管用) Cpp代码 <a title="复制代码" onclick="function onclick(){dp.sh.Toolbar.CopyToClipboard(thi转载 2010-04-17 15:43:00 · 1142 阅读 · 0 评论 -
ACE中UDP通信
ACE中UDP通信udp是一种无连接的协议,提供无连接不可靠的服务。在ace中,通过ACE_SOCK_Dgram类提供udp通信服务,ACE_SOCK_Dgram和ACE_SOCK_Stream的API非常类似,一样提供了send,recv及close等常用操作,这里就不再累述了。udp通信时无需像tcp那样建立连接和关闭连接,tcp编程时需要通过accept和connect来转载 2010-04-17 16:47:00 · 671 阅读 · 0 评论 -
ACE日期时间类
ACE日期时间类比较少,常用就是下面2个类ACE_DateTimeACE_Time_ValueACE_DateTime用于获得和设置当前日期/时间,其没有提供运算操作,精确到毫秒ACE_Time_Value 主要用于时间统计,精确到微妙,提供了运算操作 要获得当前的时间,可调用 ACE_OS::gettimeofday() 其提供的msec,usec均表示当前变量中保存的时间的总和 如下:原创 2010-04-09 18:07:00 · 3705 阅读 · 0 评论 -
ACE线程管理机制-线程的创建与管理
ACE线程管理机制-线程的创建与管理有过在不同的操作系统下用c++进行过多线程编程的朋友对那些线程处理的API可能深有体会,这些API提供了相同或是相似的功能,但是它们的API的差别却极为悬殊,十分令人头痛。ACE_Thread提供了对不同OS的线程调用的简单包装,通过一个通用的接口进行处理线程创建、挂起、取消和删除等问题。一. 线程入口函数所有线程必须从一个指定的函数开始执行转载 2010-04-22 10:03:00 · 605 阅读 · 0 评论 -
Libxml2使用指南
Libxml2使用指南一、Libxml2介绍:Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定,能在Windows、Linux、Solaris、MacOsX等平台上运行。功能还是相当强大的,相信满足一般用户需求原创 2010-04-26 13:49:00 · 4661 阅读 · 0 评论 -
strftime函数将时间格式化
strftime strftime()函数将时间格式化 我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下: size_t strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr ); 我们可以根据format指向字符串中格转载 2010-04-29 15:00:00 · 1120 阅读 · 0 评论 -
source-insight中文:utf-8编码的中文字符在source in sight如何正常显示
用source in sight也应该由一年多了 但是有个问题一直让我很闹心,那就是:source insight虽然支持中文(代码的注释可以用中文写),Linux下编辑保存的文档,传回到windows用source打开时汉字显示为乱码步骤如下1、用写字板(wordpad)打开对应的源文件 (写字板中打开也是乱码,跟sourceinsight中正好一致) 2、同时用记事本打开对应的源文件 3、这时候能发现写字板里面是乱码记事本全选复制到写字板全选,粘贴转载 2010-07-02 15:18:00 · 16492 阅读 · 1 评论 -
socket编程基础
两台计算机要进行通信,要知道IP,协议,端口号(指定哪个应用程序接收).端口:按照OSI七层模型的描述,传输层提供进程(应用程序)通信的能力。为了标识通信实体中进行通信的进程,TCP/IP协议提出了协议端口(protocol port)的概念。端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据被相应的进程所接转载 2010-05-14 15:41:00 · 857 阅读 · 0 评论 -
double free 内存问题
double free2008年06月02日 星期一 11:43*** glibc detected *** free(): invalid pointer:*** glibc detected *** malloc(): memory corruption:*** glibc detected *** double free or corruption (out): 0x转载 2010-05-20 10:42:00 · 19173 阅读 · 0 评论 -
C/C++中的日期和时间 time_t与struct tm转换
<br />摘要:<br />本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。<br /><br />关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)<br /><br /><br />1.概念<br />在C/C++中,对字符串的操作有很多值转载 2010-07-23 09:43:00 · 544 阅读 · 0 评论 -
C/C++分割字符串:strtok函数
C语言如何实现将字符串“A1234-E4566-SDFS”中‘-’分隔开的几个字串“A1234”“E4566”“SDFS”取出来?<br /> 有个函数叫strtok#include <stdio.h>#include <string.h>int main(void){ char buf[] = "A1234-E4566-SDFS"; char *tok; tok = strtok(buf, "-"); while (tok) {转载 2010-06-05 12:02:00 · 1795 阅读 · 0 评论 -
ACE_Message_Block功能简介
<br /> ACE_Message_Block功能简介<br />ACE_Message_Block在Ace中用来表示消息的存放空间,可用做网络通信中的消息缓冲区,使用非常频繁,下面将在如下方简单的介绍一下ACE_Message_Block相关功能。创建消息块 释放消息块 从消息块中读写数据 数据的拷贝 其它常用函数 <br />1。创建消息块<br />创建消息块的方式比较灵活,常用的有以下几种方式 :<br />1。直接给消息块分配内存空间创建。<br /> ACE_Message_Bloc转载 2010-08-06 11:32:00 · 808 阅读 · 0 评论 -
Linux pthread_create 如何设置 线程的detach 状态
Linux pthread_create 如何设置 线程的detach 状态Ted posted @ 2008年9月04日 21:40 in system programming with tags thread , 1068 阅读 <br />1 引言<br />线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的 Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,转载 2010-06-12 10:52:00 · 1754 阅读 · 0 评论 -
ace支持epoll编译方法
ace support epoll转载 在ACE中使用epoll[zhuan]收藏 很显然,文章的标题决定了我们是在linux下使用ACE。我们知道ACE在linux下缺省是用select来实现Reactor的,epoll相对于select的好处这里就不再多说了,我们直接讲操作步骤: 第一:重新编译ACE库 ACE 库中通过ACE_Dev_Poll_Reactor类来支持转载 2012-09-13 17:27:39 · 2463 阅读 · 0 评论