自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (13)
  • 收藏
  • 关注

原创 linux标准库红黑树的使用示例

内核提供的有红黑树的标准操作代码,结合自己得理解以及参考网上的使用实例,自己写了一个,此方法使用于快速数据。.h file:/* Red Black Trees (C) 1999 Andrea Arcangeli This program is free software; you can redistribute it and/or modify it unde

2016-03-23 22:34:37 501

原创 双向链表代码实例

一个双向链表的实例,把数据封装在结构中的data指针中,是的链表和数据各自独立。.h file#ifndef ListOper_H #define ListOper_H #include #include //--------------data结构体-------------------------typedef struct struct_data { int id

2016-03-23 22:28:27 389

原创 linux下红黑树使用实例

最近使用到红黑树写了一个电话本,使用的linux内核中的标准接口,然后加上了一些自己写的接口和测试程序,记录如下,方便后续使用,以下代码网上几乎都可以找到,只是根据自己所做的项目做了一点修正:rbtree.h/* Red Black Trees (C) 1999 Andrea Arcangeli This program is free software; you c

2016-01-19 23:17:45 1336

原创 自动监控脚本

最近写了一个script,需要具有监控单板是否断电或者重启的功能,通过log的打印实现监控:#!/bin/shalarmrate=28 # 备份目录的最大容量file_max_size=2 #1min # 每个日记的大小限制 1h =160log_dir=/home/log # 日记产出目录backup_dir=/home/backup # 日记备份目录

2015-08-10 22:58:57 472

原创 第一个驱动程序之中断处理

一,初始化工作并创建工作队列。概念:工作队列(work queue )是一种将工作推后执行的形式。我们把推后执行的任务叫做工作(work),描述它的数据结构为work_struct,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct,而工作线程就是负责执行工作队列中的工作。使用场景:创建自己的工作队列来添加工作。step1:

2015-07-25 13:17:00 432

转载 第一个驱动程序之gpio配置实例

一:看电路图,查找datasheet以及ProgrammingGuid确定引脚及待时用的寄存器//实际引脚是:GE2_R XD1,  对应GPIO67。二:编码头文件 key_driver.h#ifndef __RALINK_GPIO_H__ #define __RALINK_GPIO_H__#include #include #include #

2015-07-25 10:25:52 1333

转载 第一个驱动程序之i2c驱动架构介绍

编写一个I2C设备驱动程序的工作可分为两部分,一是定义和注册I2C设备,即i2c_client;二是定义和注册I2C设备驱动,即i2c_driver。下面我们就以mini2440的I2C设备at24c08 EEPROM为例,介绍如何完成这两个工作。一、定义和注册I2C设备步骤1:用i2c_board_info保存I2C设备相关信息在Linux中,struct i2c_clien

2015-07-20 22:37:49 1147

转载 临界区锁和互斥对象锁对比介绍

在Win32平台上进行多线程编程,常会用到锁。下边用C++实现了互斥对象(Mutex)锁和临界区(CRITICAL_SECTION)锁,以加深理解和今后方便使用。代码已在VS2005环境下编译测试通过。Lock.h#ifndef _Lock_H#define _Lock_H#include //锁接口类class ILock{public: virtual ~I

2015-04-19 22:24:59 411

原创 使用tinyxml封装或解析xml形式字符串

有时封装一些SDK接口,但是一些入参的参数容易变动,如对不同设备的操作,他们的一些删选条件会不同,所以调用接口时其参数也不同。既然是sdk接口了就不能经常改动,所以对于易变的一些设备参数,在sdk上层我们封装为一个数据结构体,然后转化为一个一个xml形式的字符串,接着以字符串的形式传入sdk接口,最后在sdk接口函数中解析xml形式的字符串。这样有以下几个优点:1,保证了s

2015-03-21 23:13:12 2953

原创 事件对象控制线程

Step1:创建线程,然后挂起。CFTPCtr:m_pFTPMainThrd = (CFTPMainThrd*)CWinThread* AFXAPI AfxBeginThread(CRuntimeClass* CFTPMainThrd,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);Step2:创建事件对象,然后等待事件对象消息。

2015-01-31 16:47:04 334

原创 VC中Rich Edit控件实现打印信息显示为指定颜色

1,特别说明:VC中在对话框上使用Rich Edit控件前一定要用AfxInitRichEdit()初始化RichEdit环境。2,代码实现: CHARFORMAT cf; ZeroMemory(&cf, sizeof(CHARFORMAT)); cf.cbSize = sizeof(CHARFORMAT); cf.dwMask = CFM_BOLD | CFM_COLOR |

2015-01-25 22:54:26 692

原创 位移运算符学习总结

在C语言中,涉及位移的运算符有2个,>>表示右移,而汇编指令中,SHL和SHR表示逻辑左移和逻辑右移,SAR和SAL表示算术左移和算术右移。其中,逻辑左移和算术左移都是寄存器二进制位整体向左移动,并在右边补0。而右移则不同,逻辑右移是整体向右移,并在左边补0,而算术左移则是根据原符号位的值补与其相同的值。怎么判断何时使用逻辑和算术位移呢?如果在位移运算符左边的变量是有符号数,如

2015-01-18 19:32:20 519

原创 MD5算法使用心得

最近了解了下MD5算法,以前觉得可能很复杂,一直没敢去学习了解,这次学习使用之后,认为这是一个很常用的东东,故总结下我使用的一些步骤,以示记录。 1,加密准则:只要文件的内容一致,使用加密算法所得加密密钥都会一致,否则不同。,2,一般使用的步骤(以xml操作为例)如下:    第一步:根据xml的操作,读取除加密秘钥之外的所有xml内容,我记录为csMyXmlContent;

2015-01-17 21:20:01 7911

转载 串口通信之项目实例一

最近有个项目,使用到了串口,所以就整理了下,总结记录下来。一,串口操作步骤:串口的操作可以有两种操作方式:同步操作方式和重叠操作方式(又称为异步操作方式)。同步操作时,API函数会阻塞直到操作完成以后才能返回(在多线程方式中,虽然不会阻塞主线程,但是仍然会阻塞监听线程);而重叠操作方式,API函数会立即返回,操作在后台进行,避免线程的阻塞。无论那种操作方式,一般都通过四个步骤来完成:

2015-01-08 20:12:46 1023

转载 红黑树学习终极篇

至此,红黑树内容基本学习完了,不过代码实现是个什么样子呢,这里转载网上搜到一篇blog:http://blog.csdn.net/yukid2012/article/details/40660633c代码实现,写的不错,之前看过,好像打印节点颜色有点问题,太晚了不仔细看了。。。#include #include typedef int EleType;typedef enum C

2015-01-07 23:16:25 383

转载 红黑树学习下篇

本篇讲述红黑树的删除,学完前面的三篇,应该发现红黑树真的很经典,删除是最复杂的的,也是最能考验一个人的逻辑思维能力的,我比较笨,学了大半天才搞明白怎么回事,好几处都搞蒙了,所以,我写这一篇的时候会把我自己的心得写一下,免得后学的童鞋和我一样多走一些绕绕。1,介绍几个此篇中使用到的概念:Z指向需要删除的节点,Y指向实质结构上被删除的结点,x指向顶替y的节点,w为x的兄弟节点,其中Y是Z的后继

2015-01-07 22:21:02 471

转载 红黑树学习中篇

本篇讲述红黑树的插入,学完前面的两篇,就拥有了二成功力,学完此篇则拥有五成功力,开始吧。。。 疑问:为什么插入的节点是红节点?答:红黑树的节点插入默认是节点为红色的,插入黑点会增加路径上黑点的数目,一定会破坏性质5;插入红点,当其父节点为黑色时,不影响平衡,继续保持红黑性质,当其父节点为红色时,可能破坏性质2(根节点是黑色的)、性质4(红色节点的子节点一定是黑色节点),需要进行修正。但

2015-01-07 21:59:40 487

原创 红黑树学习上篇

如果你已经掌握了红黑树前篇的内容,那么很高兴你已经具备了学习红黑树的资本。左旋转和右旋转是红黑树中为了调节红黑个数而设计的方案,所以,此篇主要讲解一下旋转问题。旋转是红黑树中最简单的东东,不过也是最基础的,由于涉及到红黑树的性质,所以先从学习红黑树的五个性质开始吧。1,红黑树的五个性质:  1)每个结点要么是红的,要么是黑的。  2)根结点是黑的。  3)每个叶结点,即空结点(

2015-01-07 21:32:27 551

转载 红黑树学习前篇

最近学习红黑树,个人觉得,作为一名程序员,一些经典的算法非常值得研究,他的思想他的操作对自己都是一个很好地补充学习。不过学习红黑树之前,必须要先学会二叉查找树,红黑树操作=二叉查找树操作+为符合红黑树性质所做的特殊修正。本文为红黑树学习前篇,内容主要参考:http://blog.csdn.net/yukid2012/article/details/40479067。自己做了一些修改,添加了

2015-01-06 23:43:56 519

转载 windbg定位线程死锁和句柄泄露

有异常处理程序定义处理引发的异常时,将调用该 UnhandledExceptionFilter 函数。 通常,该函数会将异常传递给在 Ntdll.dll 为文...没有异常处理程序定义处理引发的异常时,将调用该 UnhandledExceptionFilter 函数。 通常,该函数会将异常传递给在 Ntdll.dll 为文件其中捕获,并尝试处理设置。 在进程的内存快照所在某些情况下,可以看

2014-12-03 23:02:19 1842

原创 winDbg定位异常崩溃和线程死锁三步骤

第一步: 附件进程(Attach to process)或者直接打开执行进程,通过.dump /mf C:/dump.dmp保存dump文件;此时可以stop Debuging。第二步:设置符合文件路径和设置代码源路径;第三步:分析异常(!analyze -v -hang),通过process the threads查看进程,通过 ~进程号s 转换进程,通过!cs 地址 查看其堆栈。

2014-12-03 22:28:06 2915

原创 模板函数、拷贝构造函数使用总结

模板:经验一:今天写了一个模块函数,使用的环境是vc6.0,结果报了一个错误:error LNK2001: unresolved external symbol,网上查了一下,原来是模板函数现在大部分编译器还不支持定义和实现分离。经验二:工程里使用了几个同名函数,只是参数不同,代码的实现思想一致,但是具体处理有点小差别,想了很久感觉可以写成模板函数,但是就是写不出来,问了下旁边的同事,瞄了

2014-12-02 20:44:48 1165

原创 nginx内存池学习

最近学习nginx,今天看了下有关内存池方面的东东,记录下来作为总结学习,

2014-10-21 21:03:12 451

转载 C++ socket实现获取本机IP&MAC

#include           //该头文件定义了Socket编程的功能#include             //该头文件声明了输入输出流函数#include        //该头文件定义了一些通用函数#include          //该头文件支持HTTP请求#include        //该头文件定义了Windows的所有数据基本型态#include  

2014-09-21 21:40:25 1392

原创 常用函数之指定目录下查询文件

一,结构体_finddata_t 介绍:struct _finddata_t {unsigned attrib; time_t time_create;time_t time_access; time_t time_write; _fsize_t size; char name[_MAX_FNAME];}; unsigned     atrrib:文件属

2014-09-05 22:48:36 418

转载 进程间通信之命名管道

命名管道具有以下几个特征:(1)命名管道是双向的,所以两个进程可以通过同一管道进行交互。(2)命名管道不但可以面向字节流,还可以面向消息,所以读取进程可以读取写进程发送的不同长度的消息。(3)多个独立的管道实例可以用一个名称来命名。例如几个客户端可以使用名称相同的管道与同一个服务器进行并发通信。(4)命名管道可以用于网络间两个进程的通信,而其实现的过程与本地进程通信完全一致。实

2014-09-05 22:04:45 722

转载 进程间通信之异步管道

异步管道实现的流程图说明:1)。父进程是我们需要实现的,其中需要创建管道A,管道B,和子进程,整个实现流程分为4个操作。2)。管道A:输入管道3)。管道B:输出管道4)。操作A:把输入文件sample.in的数据写入输入管道(管道A)5)。操作B:子进程从输入管道中读取数据,作为该进程的加工原料。通常,程序的输入数据由标准的输入设备输入,这里实现输入重定向,即把输入管道作为输入

2014-09-05 00:01:12 687

转载 va_start、va_end、va_list的使用

va_start、va_end、va_list的使用1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表void foo(...);void foo(parm_list,...);2:函数参数的传递原理函数参数是以数据结构:栈的形式存取,从右至左入栈.eg:#include void fun(int a, ...){int *te

2014-09-02 19:46:28 383

转载 进程间通信:使用file-mapping kernel object(文件映射内核对象)

A程序:#include #include #include #define BUF_SIZE 256TCHAR szName[]=TEXT("Global\\MyFileMappingObject");int main(){ HANDLE hMapFile; char * pBuf; hMapFile = CreateFileMapping(  INV

2014-09-02 19:37:31 602

转载 MySQL之常用C API详述

2013-11-23 20:32299人阅读评论(0)收藏举报一、C API数据类型MYSQL:该结构代表1个数据库连接的句柄。不应尝试拷贝MYSQL结构。不保证这类拷贝结果会有用。MYSQL_RES: 该结构代表返回行的查询结果(SELECT, SHOW, DESCRIBE, EXPLAIN)。MYSQL_ROW:这是1行数据的“类型安全”表示。行是通过调用mysql_f

2014-09-02 19:24:36 428

转载 vc中ShellExecute的使用(调用外部程序)

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 首先必须引用shellap

2014-09-01 21:30:10 989

原创 vc调用webservice

第一步,首先介绍下两个名词的区别,URL和

2014-09-01 21:10:17 430

转载 wininet实现ftp客户端关于传输进度的分析

wininet提供了接口FtpGetFile实现从ftp服务器下载文件;提供了接口FtpPutFile实现把文件上传到ftp服务器上。通过这两个接口,我们能够完成基本的ftp文件传输客户端功能。但是在传输的同时,我们希望知道当前大概传输了多少,传输完整个文件大概需要多长时间,当前进度是多少,大概还有多长时间才能传输完毕。  单纯依靠这两个接口,我们无法实现这个功能。仔细翻阅msdn,发现win

2014-08-10 12:21:19 914

转载 unix平台下ftp客户端c++实现实例

#ifndef CLIENT_H_#define CLIENT_H_#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2014-08-10 11:45:02 648

转载 vc6.0实现操作excle之下篇

2,        通过ODBC服务2.1,类和方法使用说明为使用CDatabase,构造一个CDatabase对象并调用它的OpenEx成员函数。这打开了一个连接。在接着构造CRecordset对象以操纵连接的数据源时,向CDatabase对象传递记录集构造程序指针。完成使用连接时调用Close成员函数并销毁CDatabase对象。Close关闭以前没有关闭的任何记录集。#inclu

2014-08-04 21:50:45 657

转载 vc6.0实现操作excle文件之上篇

最近写了一个小工具,使用到了vc6.0对excel的操作,搜集了些文件资料以及自己的的总结,记录下。这里共总结了两种对excle的操作,一种为通过excle对象,一种为通过ODBC服务;1,        通过excle对象1.1,   excle对象使用类2.       _Application:表示整个的Excel应用程序,包含一个工作簿集合3.       Workbo

2014-08-04 21:39:20 909

转载 常用正则表达式

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,

2014-07-21 21:12:07 375

转载 选择文件或者文件夹处理函数

写代码时经常会遇到,如点击按钮选择文件或者文件夹路径

2014-07-21 21:08:29 484

转载 常用函数之检测目录、多级目录创建

编写代码中经常回遇到一些常用的函数,这些函数并不是很容易用脑袋瓜子记录下来,为了以后更方便的使用且不再去做无用功,收集的函数暂以博客的形式记录下来。///检测一个目录是否存在,存在返回true,不存在返回false;bool  fnDirIsExist(const string &strPath){    WIN32_FIND_DATA  wfd;    ZeroMemory(

2014-07-21 20:49:30 390

转载 关于 SHFILEOPSTRUCT

在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT结构的参数。使用SHFileOperation()函数时只要填写该专用结构--SHFILEOPSTRUCT,告诉Windows执行什么样的操作,以及其它重要信息就行了。SHFile

2014-07-18 00:07:45 481

ARM Cortex-M0权威指南-中文和英文两版-都带目录

ARM Cortex-M0权威指南-中文带目录,ARM公司的Cortex-M0应用于各种微控制器(MCU)中,并可让研发工程师以8位的价位创造32位的的效能,并将传统的8位和16位的处理器升级到更高效、更低功耗的32位处理器。

2018-11-15

linux下c编程

介绍linux环境下,c编程的一些介绍。

2015-04-19

Windows系统编程之进程间通信

Windows 的IPC(进程间通信)机制主要是异步管道和命名管道。(至于其他的IPC方式,例如内存映射、邮槽等这里就不介绍了) 管道(pipe)是用于进程间通信的共享内存区域。创建管道的进程称为管道服务器,而连接到这个管道的进程称为管道客户端。一个进程向管道写入信息,而另外一个进程从管道读取信息。 异步管道是基于字符和半双工的(即单向),一般用于程序输入输出的重定向;命名管道则强大地多,它们是面向消息和全双工的,同时还允许网络通信,用于创建客户端/服务器系统。

2014-09-05

ftp客户端源码

FTP客户端的实现源代码,包含功能如下: (1)实现一个图形用户界面的FTP客户端,保证文件的安全传输和存储。 (2)提供登录界面,上传下载界面、帮助界面、关于界面 (3)通过输入服务器地址、用户名和密码,可以实现远程FTP主机的登录。 (4)提供本地文件上传功能,可对FTP主机文件进行下载和删除文件。 (5)提供对本地目录的读取与返回,能正确列出文件和文件夹,在没有登录服务器前可以作为一个简单的文件查询工具对本地文件进行查询。 (6)帮助页面可以对用户提供使用说明。 (7)关于界面包含设计者的信息(帮助界面和关于界面整合在一起)。 (9)支持ASCII传输模式和二进制数据传输模式,外加自动选择的模式 (10)FTP的两种工作模式的选择Port模式(主动)和Passive模式(被动) (11)提供用户操作的状态信息输出

2014-08-02

rinetd端口工具源码

学习端口技术的不可多得的工具源码,代码量小,且结构简单,易于学习。

2014-07-27

ftp分析和扩展

ftp协议的分析,以及扩展的内容,如:ssl,帮助了解ftp工具原理。

2014-07-16

FTP服务器C++代码实现

FTP服务器C++代码实现,包含客户端和服务器端。

2014-07-16

ftp工具代码学习小例子

学习ftp的资料,代码少,易理解,是入门的最佳选择。

2014-07-16

ftp工具代码

一个ftp工具:filezilla例子。

2014-07-16

ftp工作原理

FTP是仅基于TCP的服务,不支持UDP。 与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21-命令端口和20-数据端口。但当我们发现根据(FTP工作)方式的不同数据端口并不总是20时,混乱产生了。

2014-06-30

zip文件解压

zip文件的解压方式,讲解比较详细,一共八个步骤让你轻松了解。

2013-08-20

zip解压文档说明该

自己收集的zip操作文档,主要是介绍解压和压缩的内容。

2013-08-14

object-c学习

对于初学者是一个好的文档,在你两个小时的时间里就可以对语法有个组基本的了解。

2012-10-22

空空如也

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

TA关注的人

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