自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

啃骨头的小蚂蚁

成长或不成长,靠自己!

  • 博客(159)
  • 资源 (12)
  • 收藏
  • 关注

原创 bug fixed 系列之四 : 内存错误分析解决

本文章为原创,欢迎交流,欢迎转载;转载请勿篡改内容,并且注明出处,谢谢!本节重点介绍程序中各种内存错误及其原因:空指针:空指针一般定义为NULL,即0;现代操作系统都会保留从0开始的一块内存,一旦程序访问了这块内存,系统就会触发一个异常; 问题1:为什么需要保留这样一块内存?            可以判断一个指针的有效性问题2:为什

2014-01-24 15:07:45 1085

原创 bug fixed 系列之三 : 程序运行时相应的内存操作

本文章为原创,欢迎交流,欢迎转载;转载请勿篡改内容,并且注明出处,谢谢!本节重点介绍程序中各种不同类型的变量的存放地方:初始化了的全局变量 : data segment初始化了的静态变量 : data segment未初始化的全局变量 : bss    segment未初始化的静态变量 : bss    segment类中静态

2014-01-24 15:04:12 1181

原创 bug fixed 系列之二 : 进程内存空间分布情况

本文章为原创,欢迎交流,欢迎转载;转载请勿篡改内容,并且注明出处,谢谢!本文重点论述进程内存的空间布局,目的是明白在程序运行时,即执行code时,具体是操作的那块内存。虚拟内存管理:操作系统一般采用虚拟内存管理技术(简单讲分层内存换来技术,cpu要操作某个数据的过程:首先在cache中查询,若无在内存中查询,若无在硬盘中查询;具体内容请参考其他文档); 

2014-01-24 15:01:14 1973

原创 bug fixed 系列之一:前言

本文章为原创,欢迎交流,欢迎转载;转载请勿篡改内容,并且注明出处,禁止用于商业目的,谢谢!

2014-01-24 14:48:40 1237

原创 source insight 常用快捷键

1. shift+F8 高亮某个词

2012-07-16 17:10:26 560

转载 修改chrome浏览器背景颜色

1.找到chrome浏览器的安装目录,并找到custom.css这个文件。缺省目录是C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\User StyleSheets\custom.css 2.默认里面无内容,copy如下内容进去并保存: html, body {background-color: #CCE8CF!impo

2012-07-09 16:48:01 657

转载 宽字符处理函数和窄字符处理函数对应表

字符分类:  宽字符函数普通C函数描述 iswalnum()  isalnum() 测试字符是否为数字或字母 iswalpha()  isalpha() 测试字符是否是字母 iswcntrl()  iscntrl() 测试字符是否是控制符 iswdigit()  isdigit() 测试字符是否为数字 iswgraph()  isgraph() 测试字符是否是可见字符 is

2012-01-06 16:32:38 497

转载 <string> <string.h> <cstring> 的异同

是c++ 的头文件,其内包含了一个string类,string s1就是建立一个string类的对象  的c语言的东西 并无类,所以不能 string s1 文件实际上只是在一个命名空间std中include了 ~~~~~~~~~~~~~~~~······头文件string与string.h的区别 在C++中,#include与#include的区别,前者要

2011-12-30 11:42:43 863

转载 在360新员工入职培训上的讲话(转)

转自 360 周鸿祎 ,与大家共勉:—————————————————————————————— ——在360新员工入职培训上的讲话我想给新入职的同事讲一讲我的期望,再提几个建议。我这个人喜欢说真话,不喜欢说漂亮话,因为漂亮话没用。但说真话,大家可能不爱听。 首先,大家一定要明白,你自己来360到底想获得什么。我觉得,第一你一定得在360学到能力,学到本事才行,因为你将

2011-12-26 17:10:41 654

转载 提问的智慧

提问的智慧艾瑞克.史蒂文.雷蒙德(Eric Steven Raymond)Thyrsus Enterprisesesr@thyrsus.com>瑞克.莫恩(Rick Moen)respond-auto@linuxmafia.com>版权©2001, 2006 Eric S. Raym

2011-12-12 17:24:04 756

转载 谈谈C++继承中的重载,覆盖和隐藏

谈谈C++继承中的重载,覆盖和隐藏       写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,他们是英语专业的),常常

2011-10-09 14:38:44 474

转载 IPC--共享内存(1)--基本知识

简介: 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,即效率高。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区 域,必然

2011-10-09 09:46:04 946

原创 IPC--信号操作-example

linux下的信号应用,简单的讲只有三件事情:安装信号(推荐使用sigaction());实现三参数信号处理函数,void handler(int signal,struct siginfo *info, void *);发送信号,推荐使用sigqueue()。dem

2011-10-08 15:19:37 1147 2

原创 IPC--信号(3)--信号的生命周期

从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:1. 信号诞生;2. 信号在进程中注册完毕;3. 信号在进程中的注销完毕;4. 信号处理函数执行

2011-10-08 15:12:09 553

原创 IPC--信号集-example

下面用刚学的几个函数做个实验。example1功能:每秒钟把各信号的未决状态打印一遍(阻塞了SIGINT信号,按Ctrl-C将会使SIGINT信号处于未决状态,按Ctrl-\仍可以终止程序)step:1) 调用函数sigprocmask可以读取或更改进程的阻塞信号

2011-10-08 10:12:27 679

原创 Decorator模式

在OO设计和开发过程,可能会经常遇到以下的情况:  我们需要为一个已经定义好的类添加新的职责(操作),通常的情况我们会给定义一个新类继承自定义好的类,  缺点:  1. 这样会带来一个问题(由于继承为类型引入的是静态特质,使得这种扩展方式缺乏灵活性)。  2. 通

2011-09-13 14:32:46 577

原创 Adapter模式

Adapter模式GOF《设计模式》一书对Adapter模式是这样描述的:   将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。demo:需求:1) 为都有“显示”行

2011-09-08 15:07:43 684

原创 回调函数

什么是回调函数?  普通的函数调用:通过函数名称调用函数;      回调函数的调用:通过函数指针调用函数。      如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。  为什么要使用回调函数

2011-09-08 13:00:16 487

原创 Bridge模式

《设计模式》一书对Bridge是这样描述的:将抽象与其实现解耦,使它们都可以独立地变化。大致意思是说:将一组实现与另一组使用他们的对象分离。         这里的实现指的是抽象类及其派生类用来实现自己的对象(而不是抽象类的派生类,这些派生类被称为具体类)。dem

2011-09-07 11:41:18 710

原创 builder模式

GOF关于builder模式的适用范围:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。当构造过程必须允许被构造的对象有不同的表示时。Builder模式的结构:它由四个部分组成:Director , Builder , Bu

2011-09-07 10:44:01 379

原创 IPC--信号(2)--信号的发送 & 信号函数的安装

信号的发送1、kill() #include #include  int kill(pid_t pid,int signo) pid:是进程id参 数pid的值信号的接收进程pid>0

2011-09-06 16:08:34 590

原创 IPC--信号(1)--基本知识

信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步

2011-09-06 15:40:43 970

原创 互斥与同步---生产者与消费者

互斥与同步       互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。                但互斥无法限制访问者对资源的访问顺序,即访问是无序的。      同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的

2011-09-06 10:06:13 1319

原创 工厂模式

1. 需求one   A开BWM车:   类:class BWMCar{public:    QString start()    {        return "start BWMCar\n";    }    QString st

2011-08-25 14:17:44 344

原创 变化

唯一不变的是变化!时间不等人,时刻在流动,时间在变化!人在慢慢长大,慢慢变老,人在变化!知识在不断的更新,知识在变化!

2011-08-18 10:17:04 380

原创 pthread库学习-4 : 互斥量

2011-08-02 14:59:18 394

原创 pthread库学习-3:线程属性

线程属性结构如下:typedef struct{      int                             detachstate;   线程的分离状态      int                             schedpolicy;  线程调度

2011-07-13 18:53:37 573

原创 pthread库学习-2:基本函数

1. 入口函数:     主线程的入口函数一般可以认为是main函数;     一般线程的入口函数定义:     void * thread_fun( void * arg);2. 如何启动普通线程: #include int pthread_create(pthr

2011-07-12 09:10:11 1259

原创 pthread 库学习—1:进程与线程

1. 进程与线程的关系?    线程是进程内部的一个控制序列;    进程内可以有多个线程/控制序列,但是进程启动的第一个控制序列,被称为主线程;   进程是资源分配的单位;线程是调度单位;2. 使用多线程的优点?    多线程间通信:多个线程共享进程的存储地址空间和文件描述符;

2011-07-11 18:34:32 539

转载 How Google Tests Software (reprint)

<br /> 导读:本文是从 How Google Tests Software - Part Three 这篇文章翻译而来。 本文作者 James Whittaker, 前微软架构师,是“How to Break Software”系列图书中好几部书的作者,现任Google测试工程主管,最近他写了一系列的关于谷歌如何测试软件的文章,本文为其系列的第三部分。以下是文章内容:<br />在Google,质量并不等于测试。我相信在任何一个地方都是如此。“质量不是被测试出来的”这句老话是再正确不过

2011-03-22 09:06:00 784

原创 搜索关键字的重要性

<br /> <br />今天发现klt的一个bug:无法成功打开com10及以上的所有端口;搜索了半天也没找到有用的信息。<br />开始比如用关键字:串口打开失败/错误; vc串口通信 代码等; 结果是没能找到有用信息。<br /> <br />后天使用关键字:大于10 的com端口; 结果找到了有用信息(发现CreateFileA的第一个参数在com10以上和com10以下时,参数格式是不一样的);最终解决了问题。<br /> <br />由于没用正确搜索关键字,导致时间的浪费!<br /> <br

2011-01-06 16:46:00 650

转载 QRegExp正则表达式

<br />"^/d+$"  //非负整数(正整数 + 0) <br />"^[0-9]*[1-9][0-9]*$"  //正整数 <br />"^((-/d+)|(0+))$"  //非正整数(负整数 + 0) <br />"^-[0-9]*[1-9][0-9]*$"  //负整数 <br />"^-?/d+$"    //整数 <br />"^/d+(/./d+)?$"  //非负浮点数(正浮点数 + 0) <br />"^(([0-9]+/.[0-9]*[1-9][0-9]*)

2010-09-26 15:19:00 3381 1

转载 QT中的对象树与对象拥有权

<br />QObjects以对象树组织它们自己。当你创建一个QObject以另一个对象作为其父对象时,这个QObject被加入到其父对象的children()列表中,当父对象对被删除时,其子对象也会被删除。实践表明这种组织方式非常适合GUI对象的特点与需要。举例来说,一个QShortcut(键盘快捷键)是其相关窗口的孩子,因此当用户关掉那个窗口时,这个快捷键也随之删除了。<br />QWidget,是所有屏幕可显示的一切事物的基类,它扩展了这种父子关系。在这种关系下,孩子通

2010-09-26 15:15:00 801

转载 sequentail Containers

<br />sequentail Containers<br />QVector<T> array-like data structure(在尾部插入数据时效率很高,而在中间和头部插入数据时开销很大)。<br />QVector提供了[]运算符<br />QVector可以用<<运算符代替append()函数。<br />QVector中的基本类型及指针被初始化为0。<br />QLinkedList<T><br />QLinkedList不提供[]运算符,所以必须通过迭代器来对

2010-09-26 08:44:00 660

转载 c++ gui with qt 2

<br />Chatper 6 Layout Management<br />6.1 Laying Out Widgets on a Form<br />Qt提供的的基本的Layout Manager包括:QHBoxLayout,QVBoxLayout,QGridLayout和QStackLayout。<br />Qt中其它能完成Layout management功能的类包括 QSplitter,QScrollArea,QMainWindow和QWorkspace。<br />Qt中管理chil

2010-09-26 08:42:00 1389 1

转载 Qt/e体系结构概述

<br />Qt/e体系结构概述<br />Qt for destop Linux 和 Qt for Embedded Linux 最大的区别就在于他们所依赖的底层显示基础的不同,这也就导致了他们在体系结构上的差异。对于Qt for desktop Linux来说,底层的显示技术构建在X Window System之上,完全依赖于X System,他们在下层完全是调用了X Lib的系统方法来把界面上的东西显示出来。<br />Qt for embedd linux在这方面则完全不同,它并没有构建

2010-09-17 13:45:00 3028

转载 QT样式表

<br /><br />除了子类化Style类,使用QT样式表(QStyleSheet)是另一种快速改变QT程序UI风格的方法,它很大程度上借鉴和参考了HTML层叠样式表的语法和思想。其效果叠加在Style的基础上<br />按官方文档的说法,QT样式表目前只能和内置Style配合工作,和子类化的Style的配合正在开发中<br />StyleSheet的使用<br />StyleSheet文件的默认后缀名为qss,可以通过命令行参数 -stylesheet filename.qss 来设置样式

2010-09-17 13:39:00 1908

转载 ofstream/ ifstream 详解

<br />ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;<br />在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:<br />1、插入器(<<)<br />  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'/n';就表示把字符串"Write Stdout

2010-09-17 13:37:00 694

转载 QLineEdit 输入验证

<br />LineEdit提供一个文字输入栏位,可以输入文字或数字,我们可以对输入作验证,或是设定为一般显示、密码显示等等,以下的程式是个简单的设定示范:<br />#include <QApplication> ><br />#include <QLabel><br />#include <QLineEdit><br />#include <QIntValidator><br />#include <QGridLayout><br /><br />int main(int argc, char

2010-09-17 13:34:00 5739

转载 QTimer简单使用

用MFC实现动态显示,通常要不停地进行窗口重绘,而进行窗口重绘通常要利用onTimer事件;而在Qt中呢?Qt有一个专门的QTimer类,该类也可以类似于onTimer事件,不停实现窗口重绘;其用法如下:       首先,你可以在你要重绘的窗口中声明一个QTimer对象的指针       比如:       QTimer *timer=new QTimer(this);                                                    

2010-09-10 17:40:00 2024 1

六顶思考帽 pdf

六顶思考帽 pdf 带有目录 清晰

2011-09-05

python 简明 教程

python 简明 教程

2011-07-28

思维导图(mindManager)

思维导图 mindManager pdf

2011-05-06

Eclipse插件开发扩展点API中文.chm

Eclipse 插件开发 插件开发扩展点 API 中文 chm

2011-04-18

QT帮助文档.chm

QT 帮助文档 chm

2011-04-14

Eclipse插件开发指南

Eclipse 插件开发 插件开发指南 pdf

2011-04-14

银行核心业务方案.pdf

银行 核心业务 业务方案

2011-04-07

Java编程思想第四版完整中文高清版

Java 编程思想 第四版 完整 中文 高清版

2011-04-02

设计模式C++版(包含详细代码)

1.设计模式 C++; 2.包括每个模式的详细介绍; 3.包含每个模式的详细代码;

2011-04-02

空空如也

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

TA关注的人

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