自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (12)
  • 收藏
  • 关注

转载 C,C++开源项目中的100个Bugs

 俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目,诸如Apache Http Server、Chromium、Clang、CMake、MySQL等的源码进行了分析,找出了100个典型的Bugs。个人觉得这份列表对C/C++ 程序员有一定参考意义。与其说事后用静态工具分析,倒不如在编码时就提高自...

2014-12-31 10:29:29 1369

原创 jsonCpp使用介绍和优化

JsonCpp简介JsonCpp主要包含三种类型的class:Value Reader Writer。jsoncpp中所有对象、类名都在namespace json中,包含json.h即可。注意: Json::Value只能处理ANSI类型的字符串,如果C++程序使用Unicode编码的,最好加一个Adapt类来适配。简单解析例子:数据格式为:{

2014-12-30 12:20:12 5078

转载 Log4cplus选型和使用指南

前言    之前接触的java项目中,日志操作基本上都是用的log4j,以前的c项目中也用过zlog。但是最近参与C++的一个项目,自己网上做了一些选型,所以自己记录一下。选型比较:    log4cxx:Apache的产品,属于apache的子项目之一,由log4j移植过来的。移植过来的东西多数都有一个特点,那就是要依赖各种碗糕。log4cxx就需要依赖apr-utils

2014-12-29 12:08:36 8225

转载 C/C++时间函数time/localtime/mktime/ctime/strftime使用方法

1. 介绍C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法.          通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:

2014-12-26 11:27:48 8744

翻译 pair map multimap说明

Sparse array example: (why hold space for thousands of elements when all we have is five)01#include 02#include 03#incl

2014-12-24 18:33:53 944

原创 pragma pack字节对齐详解

强调一点:#pragma pack(4)typedef struct{ char buf[3]; word a;}kk;#pragma pack()对齐的原则是min(sizeof(word ),4)=2,因此是2字节对齐,而不是我们认为的4字节对齐。这里有三点很重要:1.每个成员分别按自己的方式对齐,并能最小化长度2.复杂类型(如结构)的默

2014-12-24 17:36:49 7535

原创 #pragma pack引起 stl的map/list在insert时报错:(Suspended : Signal : SIGSEGV:Segmentation fault)

最近接手一个老项目,在老项目中使用了map存储缓存数据,如下:#include "conf.h"int Frame ::parse(){ std::map tmpString; tmpString.insert(std::map::value_type(string("0000"), 12123323)); tmpString.insert(std::map::value_type(

2014-12-24 16:25:19 6111

原创 用 char*作为std::map中的key

声明map时需要添加一个cmp比较函数,不然map在比较时,使用char *的指针进行比较,而不是比较char字符串。#include struct cmp_str{ bool operator()(char const *a, char const *b) { return std::strcmp(a, b) < 0; }};int m

2014-12-24 09:10:11 9131 1

转载 用 snprintf / asprintf 取代不安全的 sprintf

在 C 語言裡,要建立一個字元陣列的字串,常常會使用 sprintf() 這個函數來做格式化的處理。但是實際上,這個函式卻不是那麼「安全」。怎麼說呢?sprintf() 的整個介面長的樣子的是:int sprintf ( char * str, const char * format, ... )也就是在使用前,必須要先建立好一個字元陣列的空間,再用這個函式把內容填入,下面就是簡單的例

2014-12-18 16:10:33 1749

转载 关于stringstream的一些总结

C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。可以使用这些库来实现安全和自动的类型转换。如果你已习惯了风格的转换,也许你首先会问:为什么要花额外的精力来学习基于的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int类型转换到字符串类型。为了正确地完成这个任务,你必须确保证目标缓冲区有足够大空间以容纳

2014-12-18 14:14:34 1611

转载 stringstream/snprintf/sscanf/atoi/itoa数据类型转换比较

从int到char*,或者反过来从char*到int,在C/C++中到底有多少种转换方法呢?符合标准的大概有四种。即C数据转换函数族、sprintf/snprintf/sscanf函数族、字符串流std::stringstream、std::strsteam。不符合标准却又广为使用的包括CString和boost::lexical_cast。本文只讨论符合标准的转换方法,其中std::strstr

2014-12-18 11:42:08 2299

转载 C++类中静态函数的构造

首先先看下面的代码:#include &lt;iostream&gt; using namespace std; class A { public: A() { cout &lt;&lt; "A's Constructor Called " &lt;&lt; endl; } }; class B { static A a; public: ...

2014-12-17 17:45:16 2907

转载 list/map中安全删除元素

最近遇到在map中删除元素安全性的问题,于是查了查资料,记录一下。问题的引出:一个关于list::erase()的问题。写了个小程序试验list在erase一个成员之后iterator 值的变化,程序中注释部分是运行结果显示的数据,代码如下(主要代码): list::iterator It;for(It = myList.begin(); It != myList.

2014-12-17 16:11:37 3354

原创 http-parser解析http报文详解

说明项目里用到力http-parser,在这里简单说明一下其用法吧下载地址:https://github.com/joyent/http-parser其使用说明很详细。开源用例开源tcpflow 1.4.4中使用http-parser的源代码/* -*- mode: C++; c-basic-offset: 4; indent-tab

2014-12-17 15:16:33 24401

转载 http协议以及chunked编码分析

Http协议Http协议 -- 格式    HTTP消息包括浏览器向服务器的请求消息和服务器向浏览器的响应消息。这两种类型的消息都由一个起始行,一个或者多个头域,一个头域结束的空行和可选的消息体组成。HTTP头域一般包括通用头,请求头,响应头,实体头。每个头域由域名、冒号(:)、域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符。头域可以被扩展为多行,在每行

2014-12-17 08:47:07 8427

转载 Mysql Linux安装和事件调度器(Event Scheduler)

MySQL安装一、下载MySQL安装文件 完全安装MySQL需要下面6个文件: MySQL-server-community-5.1.26-0.rhel4.i386.rpm MySQL-client-community-5.1.26-0.rhel4.i386.rpm MySQL-shared-community-5.1.26-0.rhel4.i386.rpm M

2014-12-15 20:23:51 5043

原创 jms_ut.py

# Filename : jms_ut.py# -*- coding: utf-8 -*-#!/usr/bin/pythonimport osimport os.pathimport sysimport platformimport shutilimport loggingimport timeCLEAR_FILE_TYPE = ".dmp"  

2014-12-09 19:38:50 721

转载 python中函数参数的传递

python中函数参数的传递是通过赋值来传递的。函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析      先看第一个问题,在python中函数参数的定义主要有四种方式: 1.F(arg1,arg2,...)      这是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的

2014-12-09 19:38:19 832

转载 python装饰器

今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。1. 装饰器入门1.1. 需求是怎么来的?装饰器的定义很是抽象,我们来看一个小例子。

2014-12-09 19:37:26 817

转载 Python多线程学习

基础不必多讲,还是直接进入python。    Python代码代码的执行由python虚拟机(也叫解释器主循环)来控制。Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行,就像单CPU的系统中运行多个进程那样,内存中可以存放多个程序,但任意时候,只有一个程序在CPU中运行。同样,虽然python解释器可以“运行”多个线程,但在任意时刻,只有一个线程在解释器中运行。

2014-12-09 19:36:38 1018

转载 Python类的专用方法:__init__ | __del__等

Python 类可以定义专用方法,专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。.1    __init__类似于构造函数#!/usr/local/bin/pythonclass Study:        def __init__(self,name=None):               

2014-12-09 19:35:56 911

转载 Python中调用父类的同名方法

Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递。举一个很常见的例子:Python代码>>> class Foo:      def bar(self, message):          print(message)    >>> Foo

2014-12-09 19:34:51 7983

转载 python staticmethod和classmethod

staticmethod, classmethod 分别被称为静态方法和类方法。staticmethod     基本上和一个全局函数差不多,只不过可以通过类或类的实例对象来调用而已(python里说光说对象总是容易产生混淆,因为什么都是对象,包括类,而实际上类实例对象才是对应静态语言中所谓对象的东西),不会隐式地传入任何参数。这个和静态语言中的静态方法比较像。classmet

2014-12-09 19:33:55 859

原创 Python os.path模块

##################################join:在序列中添加元素split: 将字符串分解成序列两者为互逆方法Python代码    s = "as, asdas \r\nasda"print s.split();#   result: ['as,', 'asdas', 'asda'] print "".join(s

2014-12-09 19:32:51 680

原创 Python logging模块

##########   Init Log  ###########def Init_Log(log_dir):  logging.basicConfig(level=logging.DEBUG,    format="%(asctime)s %(filename)s[line:%(lineno)-4d] %(levelname)-6s %(message)s",    datef

2014-12-09 19:31:19 750

转载 Python模块subprocess小记

在熟悉了Qt的QProcess以后,再回头来看python的subprocess总算不觉得像以前那么恐怖了。和QProcess一样,subprocess的目标是启动一个新的进程并与之进行通讯。subprocess.Popen这个模块主要就提供一个类Popen:class subprocess.Popen( args, bufsize=0, e

2014-12-09 19:29:30 905

转载 MySQL的timeout那点事

因为最近遇到一些超时的问题,正好就把所有的timeout参数都理一遍,首先数据库里查一下看有哪些超时:root@localhost : test 12:55:50> show global variables like "%timeout%";+----------------------------+--------+| Variable_name

2014-12-09 19:23:48 1144

转载 写出高性能SQL语句的35条方法分析

以下的文章主要向大家描述的是MySQL数据库性能优化的实际操作方案,随着MySQL数据库的不断发展,MySQL数据库性能优化也变得越来越受重视,以下的文章就主要对其性能优化做一详细介绍。1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的MySQL数据库性能,我们可以将表中字段...

2014-12-06 16:57:45 936

转载 ace 实现的线程池,可以用ACE_Task_Base,ACE_Task,ACE_Svc_Handler作为工作者

头文件 1#include ace/Thread_Mutex.h> 2#include ace/Guard_T.h> 3#include ace/Svc_Handler.h> 4#include ace/Condition_T.h> 5#include ace/Atomic_Op.h> 6 7#include queue> 8 9// ---------

2014-12-04 09:23:47 1686

转载 深入浅出DDoS攻击防御--攻击篇

最近做的项目对网络安全有所要求,所以在此做个笔记。转自:http://security.aliyun.com/doc/view/13675730.html1. DDoS攻击基础       DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大、最难防御的攻击之一

2014-12-03 09:20:24 2206

转载 深入浅出DDoS攻击防御--防御篇

最近做的项目对网络安全有所要求,所以在此做个笔记。转自:http://security.aliyun.com/doc/view/13675729.html?spm=5176.7370253.1997893005.12.673HLF1.防御基础1.1.攻击流量到底多大      谈到DDoS防御,首先就是要知道到底遭受了多大的攻击。这个问题看似简单,实际上却有很多不为人知的细

2014-12-03 09:08:11 2745

Linux服务器架设指南——第1章

主要讲解网络硬件知识,是《Linux服务器架设指南》书的第一章

2010-05-24

c+c++程序员面试宝典.CHM

该书详细介绍了程序员面试时所需注意的事项,供大家参考学习。

2010-04-25

Linux 下sendmail邮件系统的详细配置

该文件说明了Linux下sendmail邮件系统的详细配置,为Linux初学者来说,提供了简洁的sendmail配置教程

2010-04-25

Linux 用 C实现的邮件发送程序

改程序用c语言在linux环境下编写,成功发送邮件。

2010-04-25

linux 定时发送邮件 应用sendmail技术

由于自己记性太差,很难记住朋友的生日,所以突发奇想,写了个简单的shell程序,主要目的就是为了能在固定的节日(如:圣诞、元旦等,可以指定)和朋友生日的时候自动给朋友发送祝福信件,同时密送给自己,程序虽然简单,达到了自己需要的效果。 特地共享出来和大家一起分享,修改mail_check.sh程序的变量,最好每天8点执行,显得比较真实,其它的配置文件在conf目录下。

2010-04-25

C 语言编写一个网络蜘蛛(网络爬虫)

该文档详细介绍了网络蜘蛛(网络爬虫),并附带c语言开发的爬虫代码,对爬虫初学者很有用。

2010-04-25

中文分词算法介绍、分类详解

该文档详细介绍了中文分词的原理及相应的技术。文档讲解了最大匹配法(Forward Maximum Matching method, FMM法)、正向最大匹配法(由左到右的方向)、逆向最大匹配法(由右到左的方向)、最少切分(使每一句中切出的词数最小)。

2010-04-25

中文编码基础知识介绍

该书详细介绍了GB2312、GBK、BIG5、GB18030、UTF_8字符集等编码,为编码初学者提供了详细信息。

2010-04-25

中文编码规范详细介绍

该文档详细介绍了GB2312、Unicode、UTF-8、UTF-16等编码,对初步想编码的程序呀很有帮助。

2010-04-25

spider网络爬虫源代码

这是一个spider网络爬虫源代码,用c++完成的,主要是为搜索引擎研究者提供很好的材料,为初学者提供代码。大家可以互相学习学习。

2009-01-15

Cluence搜索引擎源码

这个是c版的luence。了解搜索引擎的人都知道luence是一个很好开源搜索引擎,他开始主要是java版的,但现在为大家提供一个c版的luence ,希望对大家有用,大家互相学习学习。

2009-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除