<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cl079074282的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/cl079074282</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; cl079074282]]></copyright><item><title><![CDATA[手机取证——android手机falsh物理镜像获取概述]]></title><link>https://blog.csdn.net/cl079074282/article/details/8942985</link><guid>https://blog.csdn.net/cl079074282/article/details/8942985</guid><author>cl079074282</author><pubDate>Sat, 18 May 2013 10:08:05 +0800</pubDate><description><![CDATA[android手机flash物理镜像获取概述：
ADB连接漏洞：当Android手机和PC或其他设备通过USB连接，选择USB调试模式时，即使用户设置了
开机密码和解锁图案，PC或设备仍可以通过ADB连接到手机，也即android系统没有对adb连接设置密码保护验证。
1、打开USB端口，用于设备和手机通过ADB协议通信，设备驱动层使用libusb等usb协议库实现了usb协议的细节，]]></description><category></category></item><item><title><![CDATA[双端队列C实现很基础很经典——来自Redis]]></title><link>https://blog.csdn.net/cl079074282/article/details/8916450</link><guid>https://blog.csdn.net/cl079074282/article/details/8916450</guid><author>cl079074282</author><pubDate>Sun, 12 May 2013 10:38:03 +0800</pubDate><description><![CDATA[1、adlist.h

/* adlist.h - A generic doubly linked list implementation
 *
 * Copyright (c) 2006-2012, Salvatore Sanfilippo 
 * All rights reserved.
 *
 * Redistribution and use in source and binary f]]></description><category></category></item><item><title><![CDATA[OBEX对象交换协议进行文件传输]]></title><link>https://blog.csdn.net/cl079074282/article/details/8891856</link><guid>https://blog.csdn.net/cl079074282/article/details/8891856</guid><author>cl079074282</author><pubDate>Mon, 06 May 2013 18:59:21 +0800</pubDate><description><![CDATA[在最近的项目中用到OBEX协议进行文件传输。大致是这样的：在塞班S60平台上开发一个客户端程序，然后通过我们的程序将其传送到手机上并自动安装，
该客户程序获得手机的短信，通话记录，联系人，日历等信息，先存储的手机本地目录。然后我们的设备通过OBEX协议与
塞班手机基于USB的OBEX server通信，将客户端获得的信息下载下来，生成报表等功能。
使用OBEX协议交换对象是非常方便的，仅需一]]></description><category></category></item><item><title><![CDATA[C++顺序栈模板类实现之模板类友元函数实现]]></title><link>https://blog.csdn.net/cl079074282/article/details/8681933</link><guid>https://blog.csdn.net/cl079074282/article/details/8681933</guid><author>cl079074282</author><pubDate>Sat, 16 Mar 2013 19:47:43 +0800</pubDate><description><![CDATA[最近项目不是很紧张，想把常用的数据结构和算法整理整理写一写，一来加深一下基础，二来以后写一些算法的时候可以多关注算法本身，而对于基本数据
结构可以直接拿过来熟练的使用。希望自己做下去。。。
1.栈的基本接口
const int MAXSIZE = 100;
template
class Stack{
public:
	virtual void Push(const T& x) = 0;
	v]]></description><category></category></item><item><title><![CDATA[C++笔试基础——覆盖与多态]]></title><link>https://blog.csdn.net/cl079074282/article/details/8666660</link><guid>https://blog.csdn.net/cl079074282/article/details/8666660</guid><author>cl079074282</author><pubDate>Wed, 13 Mar 2013 09:34:03 +0800</pubDate><description><![CDATA[记一道C++的笔试基础题，当时都有点拿不准，回来验证了下还是对了，通过面试，学习不断巩固吧，
也不可能现在抱着C++的书看了。。。
#include
#include
using namespace std;
class A{
public:
	A(){DoSomething();}
	virtual void DoSomething(){cout << "I am A" << endl;}]]></description><category></category></item><item><title><![CDATA[二分搜索的递归与非递归实现]]></title><link>https://blog.csdn.net/cl079074282/article/details/8625010</link><guid>https://blog.csdn.net/cl079074282/article/details/8625010</guid><author>cl079074282</author><pubDate>Fri, 01 Mar 2013 10:32:41 +0800</pubDate><description><![CDATA[1.递归方式对有序表进行折半查找
template                           // SortedList模板类，E元素类型，K关键码类型
int SortedList::BinarySearch(const K x, int low, int high)
{
	int mid = 0;
	if(low <= high)
	{
		mid = (low + high)/2]]></description><category></category></item><item><title><![CDATA[linux GUI库GTK+的简单应用之事件和事件监听器]]></title><link>https://blog.csdn.net/cl079074282/article/details/8620468</link><guid>https://blog.csdn.net/cl079074282/article/details/8620468</guid><author>cl079074282</author><pubDate>Thu, 28 Feb 2013 10:41:11 +0800</pubDate><description><![CDATA[刚接触GTK+,先来看看一个简单的用户登录的小例子，再来说说
GTK+的信号和回调函数实现的事件监听器。


#include
#include
#include
const char *password = "correct";

void closeApp(GtkWidget *window, gpointer data)
{
	gtk_main_quit();
}

void but]]></description><category></category></item><item><title><![CDATA[装饰者模式——灵活变幻你的对象]]></title><link>https://blog.csdn.net/cl079074282/article/details/8617720</link><guid>https://blog.csdn.net/cl079074282/article/details/8617720</guid><author>cl079074282</author><pubDate>Wed, 27 Feb 2013 15:45:50 +0800</pubDate><description><![CDATA[装饰者模式：动态的给一个对象添加一些额外的职责。我们知道，使用继承机制创建子类是增加新功能的一个方式，但这为整个子类都添加了该功能，
有时候我们需要随时动态的为对象添加新的功能，可以任意灵活的组合新的功能装饰对象。此时，装饰者模式提供了一个很好的解决方案，它可以使你透明地
嵌套多个装饰者，为对象添加任意多的功能。
模式参与者：
component：定义一个对象接口，可以给这些对象动态的添加]]></description><category></category></item><item><title><![CDATA[linux文件与目录操作相关API及递归遍历目录]]></title><link>https://blog.csdn.net/cl079074282/article/details/8608818</link><guid>https://blog.csdn.net/cl079074282/article/details/8608818</guid><author>cl079074282</author><pubDate>Mon, 25 Feb 2013 12:02:53 +0800</pubDate><description><![CDATA[1.文件与目录操作主要API
@ int chmod(const char *path, mode_t mode) 改变目录或文件访问权限；
@ int chown(const char *path, uid_t owner, gid_t group)改变文件属主
@ int mkdir(const char *path, mode_t mode)创建目录
@ int rmdir(cons]]></description><category></category></item><item><title><![CDATA[linux常用命令grep]]></title><link>https://blog.csdn.net/cl079074282/article/details/8608071</link><guid>https://blog.csdn.net/cl079074282/article/details/8608071</guid><author>cl079074282</author><pubDate>Mon, 25 Feb 2013 10:08:59 +0800</pubDate><description><![CDATA[2.grep命令
我们使用find命令搜索文件，使用grep命令在文件中搜索字符串，更可以在使用find命令时，将grep作为-exec的动作传入。
grep语法：grep [optionns] pattern [files]
选项options的常用模式
@ -c 输出匹配行数目，不输出匹配的行
@ -i 忽略大小写
@ -l  列出包含匹配行的文件名，不输出真正的匹配行
@ -v]]></description><category></category></item><item><title><![CDATA[linux 常用命令find]]></title><link>https://blog.csdn.net/cl079074282/article/details/8607025</link><guid>https://blog.csdn.net/cl079074282/article/details/8607025</guid><author>cl079074282</author><pubDate>Sun, 24 Feb 2013 17:06:46 +0800</pubDate><description><![CDATA[1.find命令
find命令的完整语法格式find [path] [options] [tests] [actions]
关于路径path，可以使绝对路径，或者相对路径，如：./dir1/dir2，也可以指定多个路径。
@ .表示从当前路径下搜索；
@ /表示从根目录开始搜索；
@ ~表示从用户目录开始搜索；
选项options，主要有以下几个
@ -depth 先搜索目录的内容]]></description><category></category></item><item><title><![CDATA[如何使客户更简单透明地使用单个对象和组合对象——组合模式]]></title><link>https://blog.csdn.net/cl079074282/article/details/8605877</link><guid>https://blog.csdn.net/cl079074282/article/details/8605877</guid><author>cl079074282</author><pubDate>Sat, 23 Feb 2013 20:56:53 +0800</pubDate><description><![CDATA[在一个图形系统中，往往存在多个简单组件组成较复杂的组件，这些组件又可以组成更高层次的组件，如何使
客户代码变得更加简洁，使得客户不要关心各个组件对象的结构？
组合模式composite模式使用递归组合使用户更轻松简单的使用这些简单和组合类对象。
模式类元素：
1.  component
声明组合中对象接口
提供公共接口的缺省实现
为组合对象声明接口访问管理子组件
2.  leaf]]></description><category></category></item><item><title><![CDATA[从适配器模式看C++继承方式]]></title><link>https://blog.csdn.net/cl079074282/article/details/8604772</link><guid>https://blog.csdn.net/cl079074282/article/details/8604772</guid><author>cl079074282</author><pubDate>Sat, 23 Feb 2013 10:53:22 +0800</pubDate><description><![CDATA[适配器模式：将一个原本接口与现系统不兼容的类转化成客户可以使用的接口形式。
模式中相关类元素：
1.target     定义client使用的特定领域的接口。
2.adaptee 已存在的类，该接口需要适配，方能使用。
3.adapter  对上述adaptee的接口与target接口进行适配。
可以想象：客户在高层只知道target的接口，而想通过adapter使得客户可以使用到ad]]></description><category></category></item><item><title><![CDATA[ADO连接数据库的几种方法]]></title><link>https://blog.csdn.net/cl079074282/article/details/7747625</link><guid>https://blog.csdn.net/cl079074282/article/details/7747625</guid><author>cl079074282</author><pubDate>Sat, 14 Jul 2012 21:57:53 +0800</pubDate><description><![CDATA[1.通过微软的Jet数据库引擎进行数据库连接
例如：连接Access
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=user.mdb","","",adModeUnknown);
2.通过DSN数据源对支持]]></description><category></category></item><item><title><![CDATA[ODBC OLEDB ADO等数据库访问技术]]></title><link>https://blog.csdn.net/cl079074282/article/details/7747567</link><guid>https://blog.csdn.net/cl079074282/article/details/7747567</guid><author>cl079074282</author><pubDate>Sat, 14 Jul 2012 21:23:52 +0800</pubDate><description><![CDATA[花了点时间理了一下数据库访问技术相关的东西，一般地，一个数据库产品的发布后，相应地，会为开发者提供一套访问改数据库的接口，比如MySql提供的C API，可以通过这些数据库产品本身的API进行数据库操作。
比如：通过API mysql_init() mysql_real_connect()连接数据库，其它的数据库产品也相应的提供了类似的API。问题是，这样直接通过底层数据库产品的API开发应用]]></description><category></category></item><item><title><![CDATA[软件工程导论读书心得]]></title><link>https://blog.csdn.net/cl079074282/article/details/7713213</link><guid>https://blog.csdn.net/cl079074282/article/details/7713213</guid><author>cl079074282</author><pubDate>Tue, 03 Jul 2012 21:19:36 +0800</pubDate><description><![CDATA[最近没在一直写代码，就看看面向对象和软件工程方面的书，觉得做软件和做任何事情都一样要遵循一定的方法学，在正确方法论的指导下实践会到达更好的效果。
写下来作为以后实践的标准。
1.使用对象分解取代传统的功能分解。
2.使用继承更好的构建层次结构系统。
3.对象之间彼此通过发消息相互联系，数据被封装在对象内部，所有对数据的操作都必须通过发消息
请求对象执行，实现了对数据的隐藏和封装。
4.]]></description><category></category></item><item><title><![CDATA[C++ const作用于指针和迭代器]]></title><link>https://blog.csdn.net/cl079074282/article/details/7671233</link><guid>https://blog.csdn.net/cl079074282/article/details/7671233</guid><author>cl079074282</author><pubDate>Sun, 17 Jun 2012 16:58:16 +0800</pubDate><description><![CDATA[1. const  T *p
const 修饰的是指针指向的内容，即不要幻想通过p修改p指向的那块内存，当然你可以让p指向新的地方。
例如：
 char szTest[] = "const test";
 char szTest1[] = "const test1";
 const char *p = szTest;  
  *p = 'C';]]></description><category></category></item><item><title><![CDATA[初触模式]]></title><link>https://blog.csdn.net/cl079074282/article/details/7671091</link><guid>https://blog.csdn.net/cl079074282/article/details/7671091</guid><author>cl079074282</author><pubDate>Sun, 17 Jun 2012 16:11:01 +0800</pubDate><description><![CDATA[这几天看到一本>一书，说到软件设计中的模式分三种，觉得有点意思，记下来：
1.体系结构模式：architectural pattern 表示一个软件系统的基本结构化组织，它提供一套预定义的子系统，规定他们的职责，并明确组织他们之间关系的规则。
可以看出体系结构模式是软件设计中最高层的指导模式，比如熟悉的MVC就属于体系结构模式的一种，它为交互式系统的设计提供了一个框架结构，使得交互式系统的设计]]></description><category></category></item><item><title><![CDATA[WinCE下 WSAWaitForMultipleEvents 事件模型实现并发IO]]></title><link>https://blog.csdn.net/cl079074282/article/details/7637201</link><guid>https://blog.csdn.net/cl079074282/article/details/7637201</guid><author>cl079074282</author><pubDate>Wed, 06 Jun 2012 10:45:57 +0800</pubDate><description><![CDATA[直接贴代码
void CListenAction::Init()
{
    // 初始化套接字库
    if (!InitSocketLib())
    {
       TRACE(_T("初始化套接字库失败"));
        return ;
    }
    // 创建服务器端监听套接字
    SOCKET listenSocket;
    liste]]></description><category></category></item><item><title><![CDATA[C++ public 继承语义]]></title><link>https://blog.csdn.net/cl079074282/article/details/7635771</link><guid>https://blog.csdn.net/cl079074282/article/details/7635771</guid><author>cl079074282</author><pubDate>Tue, 05 Jun 2012 20:04:23 +0800</pubDate><description><![CDATA[c++中类的继承关系有public 继承、protected继承、private继承三种。对于public inheritance应该说是面向对象编程中用得最多的，也是精华所在。
1、公有继承意味着is a kind of 的关系。
即任何派生类对象is a kind of 基类对象，任何出现基类对象的地方都应该允许派生对象去实例化它。这也是针对接口编程的理论基础，在系统高层，我们不应该针对具]]></description><category></category></item></channel></rss>