自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

muji318的专栏

守得云开见日出

  • 博客(70)
  • 资源 (10)
  • 收藏
  • 关注

原创 MySQL++简单使用记录.md

#1.简介MySQL++ is a powerful C++ wrapper for MySQL’s C API. Its purpose is to make working with queries as easy as working with STL containers. #2.编译安装下载MySQL++安装包 http://www.tangentsoft.net/mys

2017-04-11 10:48:56 206

原创 log4cpp安装使用

1. 主页:http://log4cpp.sourceforge.net“Log4cpp is library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. It is modeled after the Log4j Java library, staying as close

2017-04-11 10:48:50 284

原创 log4cxx安装使用

log4cxx安装使用log4cxx现在是apache的一个项目,用来记录日志。看名字就知道,是给c++使用的。 环境(在以下2个环境中进行验证测试):gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)log4cxx依赖于apache 的 apr 和 apr-u

2017-04-11 10:48:44 337

原创 epoll使用总结

epoll的使用总结使用epoll来实现一个tcp server,中间碰到了不少使用细节上的问题,总结一下。 man epoll里推荐的使用方法epoll使用代码 #define MAX_EVENTS 10 struct epoll_event ev, events[MAX_EVENTS]; int lis

2017-04-11 10:48:41 164

原创 工作方法-scrum+番茄工作法

1.产品和开发团队近期的工作分析和安排,使用scrum。产品的工作:通过product backlog来列出开发团队近期的工作安排:通过sprint backlog来列出,由个人认领,并估算(优先级,工作量,需要的时间) 2.个人每天的工作安排使用番茄工作法来安排,番茄工作法有5中模式:overview, focus, self-inspect, goal free, back

2017-04-11 10:48:34 315

原创 需求分析时的4个关注点

backgroud priority effort risk backgroud: 需求的来源和出发点priority: 该需求在当前产品体系中的优先级,是否需要优先effort: 实现该需求有多大的工作量,以目前团队的平均开发水平来衡量risk: 实现该需求有哪些风险(技术难度上的,依赖其他需求的实现或其他人/团队的结果)

2017-04-11 10:48:19 399

原创 编程语言和学习

在这篇Scala社区赢得人心的5大技巧的文章里,第一条吸引了我:“1.不要陷入C++一样的、不断膨胀的问题里,留下太多的选择,且没有清晰的最佳实践。” 我对这条深有同感,我目前使用的主要语言之一是C++,但更准确地说是其中的一个小子集,而且每次想从这个子集里跳出来,学学别的内容,向“更高级,更资深”的C++使用者迈进时,常常赶到很困惑,C++太庞大了,不知道要往哪里走,而且要真正地把C

2017-04-11 10:48:10 278

原创 windows上用netstat查看端口/进程占用

windows上用netstat命令查看某个端口是否占用,被哪个进程所占用 1.查看端口的占用情况,获取进程的PID命令:netstat -ano | findstr ""比如:查看6924端口号的占用情况 C:\Windows\my_server>netstat -ano | findstr "5924" TCP 0.0.0.0:5924

2017-04-11 10:47:54 399

原创 socket使用非阻塞connect

在使用tcp的connect调用时,默认是使用阻塞方式,当服务器当前不可用时,connect会等待(内部在重试?)直到超时时间到达,而这个超时时间是系统内核规定的,不能使用setSocketOpt来设置。在碰到服务器不可用,上层逻辑进行重试时,如果超时时间过长,会产生卡死的感觉,用户体验也不佳,所以需要控制connect的超时时间。参考网络上的资料,这里使用select。实现方式是:将so

2017-04-11 10:47:43 318

原创 Linux信号

读书笔记 信号是由用户/系统或进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。Linux信号可由如下条件产生:1).对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。比如输入Ctrl+C通常会给进程发送一个中断信号。2).系统异常。比如浮点异常和非法内存段访问。3).系统状态变化。比如alarm定时器到期将引起SIGALARM信号。4).运行

2017-04-11 10:47:25 130

原创 Qt中为QPushButton添加背景图片

有2种方式,一种是在代码中设置,另外一种是直接在Qt Creator中直接设置,下面是第二种  参考:http://doc.qt.io/qt-4.8/stylesheet-examples.html扩展阅读:stylesheet,CSS与QSS

2017-04-11 10:47:15 3380

原创 QProcess执行带管道的shell命令

QStringList options;options "-c" "ls -l | grep a | sort";QProcess process;process.start("/bin/bash", options);process.waitForFinished();process.waitForReadyRead();//process.close();

2017-04-11 10:47:05 3496 1

原创 64位系统上32位进程拷贝文件到System32目录时的重定向

64位系统上,32位进程拷贝文件到"System32"目录时,会被文件系统重定向到"SysWOW64"目录 要禁用这种重定向,需要用到下面2个API:Wow64DisableWow64FsRedirection()Wow64RevertWow64FsRedirection()下面是微软的示例代码: #ifdef _WIN32_WINNT #undef _WIN32_

2017-04-11 10:46:50 1073

原创 mac osx上为qt应用生成debug symbol

mac平台上,希望Qt编译的release程序也能包含debug symbol,这样出问题以后便于查找问题 开始按照http://doc.qt.io/qt-4.8/mac-differences.html上的#Debug symbol来设置,没有生效。报错:warning: no debug symbols in executable (-arch x86_64)后来google到

2017-04-11 10:46:45 914

原创 c++正则表达式模板库GRETA的使用

GRETA是微软研究院的一位前员工开发并开源的一个C++正则表达式库,兼容perl正则语法官方介绍:“A fast, flexible, perl-compliant regular expression template library for C++.”获取地址:http://research.microsoft.com/en-us/downloads/bd99f343-4ff4-40

2017-04-11 10:46:39 348

原创 QWidget标题栏双击事件

widget.hvirtual bool event(QEvent *event);  widget.cppbool Widget::event(QEvent *event){ if (event->type() == QEvent::NonClientAreaMouseButtonDblClick) qDebug()

2017-04-11 10:46:27 1650

原创 win应用只允许单个实例运行,并将已运行实例窗口置顶

关键词:windows,c++,桌面应用,单个实例,窗口置顶目标:1.判断本程序是否已有一个实例在运行。2.若有,则激活已在运行的实例(将其窗口置顶),并退出当前运行。 1.使用semaphore来检测是否已有实例在运行(也可以用mutex,文件等其他方式)HANDLE g_hSingleSema = ::CreateSemaphore(NULL, 1, 1, _T("sing

2017-04-11 10:45:46 319

原创 为Qt添加SSL支持

目标:为Qt添加SSL支持,使得应用可以发送HTTPS请求环境:win7,Qt4.8.6 步骤:1.到http://slproweb.com/products/Win32OpenSSL.html下载安装包,我下载的是Win32 OpenSSL v1.0.1j Light,下载文件的名字:Win32OpenSSL_Light-1_0_1j.exe 使用默认安装即可,安装过程中选择将库

2017-04-11 10:45:40 3863

原创 windows session logoff时进行处理动作

目标:Windows session logoff时得到通知,进行一些记录/清理工作测试平台: win7 x64 logoff时系统会发送WM_ENDSESSION消息,如果某个应用对这个消息的处理返回0,那么logoff动作会暂停,系统停止给其他应用发送WM_QUERYENDSESSION消息。如果返回TRUE,那么系统后续会给响应的应用发送WM_ENDSESSION消息。我

2017-04-11 10:45:33 465

原创 Qt获取本机IP地址

Qt获取本机IP地址:Qt版本:4.8.6#include QString ipAddr; QList list = QNetworkInterface::allAddresses(); foreach (QHostAddress address, list) { if (address.protocol() == QAbstrac

2017-04-11 10:45:29 309

原创 Visual studio每次build自动增加版本号

关键词:visual studio,rc file,VS_VERSION_INFO,FILEVERSION,PRODUCTVERSION 目标:希望每次在vs中编译项目时,生成的可执行程序版本号自动+1环境:vs2010,python 2.7.8 步骤:1.在rc文件同目录下添加version.h头文件,内容如下:#define RELEASE_VER 1 //

2017-04-11 10:45:22 2801 1

原创 std::map插入已存在的key时,key对应的内容不会被更新

std::map插入已存在的key时,key对应的内容不会被更新,如果不知道这一点,可能会造成运行结果与预期的不一致 “Because element keys in a map are unique, the insertion operation checks whether each inserted element has a key equivalent to the one o

2017-04-11 10:45:17 1066

原创 RHEL5.8上SAMBA源码修改打包安装流程

之前一直使用系统自带的SAMBA,近期需要对SAMBA代码做一些修改,然后还是打算用RPM包的方式来安装部署。这个流程本身不复杂,在这里记录下来,免得在另外写说明文档。 关键词:RHEL5.8, samba, rpm, rpmbuild 一、打包新的RPM1.安装samba.3.0.33-3.37.e15.src.rpm  # rpm -ivh samba.3.0.33-3

2017-04-11 10:44:56 240

原创 CENTOS6.4上KVM虚拟机环境搭建

CENTOS6.4上KVM虚拟机环境搭建 关键词:KVM,虚拟机,windows7, VNC, 桥接网络,br0, SCSI, IDE 环境:host: CENTOS6.4guest: windows 7 sp1 主要步骤:安装软件包配置桥接网络配置VNC安装虚拟机 1.安装软件包      yum install qemu-kvm 

2017-04-11 10:44:50 248

原创 字符串循环右移-c语言

一个长度为len的字符串,对其循环右移n位 [期望]char str[] = "abcdefg";右移3次后,变成"efgabcd" [思路]思路1.如果用每移动一次,就要把整个字符串整体移动一次的方法,显得太费劲了。我们可以用空间换时间,通过内存拷贝来实现。需要新申请一块相同大小的内存,把原字符串的后n个字节拷贝到它的开始地址,把原字符串的前(len-n)个字节拷贝到它的

2017-04-11 10:44:44 895

原创 字符串逆序-c语言

给定一个含有n个元素的字符串,实现逆序。 这是个很基础的问题,实现方式也是很常见的c语言思路。虽然简单,但是仍然记录下来。[期望]比如char str[] = "abcdefg";逆序后为:"gfedcba";[思路]分别从字符串的头和尾部向中间进发,依次交换头尾的值,直到在中间相遇。代码:#include #include string.h>v

2017-04-11 10:44:38 634

原创 查找单词序列在文章中出现的次数

查找单词序列在文章中出现的次数 [期望]对于测试char *substrs[3] = {"ffff", "cindy", "Bill"};char *str = "Hellocindy, BillGatesBill---cindy-ffffffxxx23424cindycindy";找到的结果应该是:"ffff" => 3,"cindy" => 4,"Bill" => 2 

2017-04-11 10:44:32 386

原创 两个已排序数组的合并-C语言

最近在纸上写一个已排序数组的合并时,花了超过预期的时间。仔细想想,这种要放到毕业找工作那会两下就出来了,原因还在于工作后对基础没有重视,疏于练习。说开一点,现在搜索引擎的发达确实给问题的解决带来了便利,但是久而久之,对很多东西的掌握其实并不深入。比如淘宝系的人经常分享一些linux内核IO优化相关的内容,咋看一下,原来是这样,觉得也不难嘛,其实不然,如果给一张白纸让你自己把流程画出来,讲解清楚

2017-04-11 10:44:27 1193

原创 RHEL6.4上Samba/NFS服务器简单配置

近期在RHEL6.4上尝试搭建一个NAS,底层使用XFS文件系统,对外主要提供samba协议和NFS协议共享,这里把主要步骤记录下来。 环境:RHEL6.4,IP:192.168.50.117 1.关闭防火墙和SELinux查看SELINUX状态:#sestatus关闭SELinux:#vim /etc/selinux/config SELINUX="" ===> SELINUX=

2017-04-11 10:44:22 161

原创 我所知道的分布式C++系统基础设施

时间:20170324常用基础模块(非分布式也用到的)配置文件 yaml 官网地址log log4cpp [官网地址]数据的动态加载 在不停进程的情况下,实时更新数据。rpc 包括rpc client和rpc serverzookeeper client 用于向zookeeper server注册,register(zk_path, server_port)

2017-03-24 10:24:02 148

转载 VirtualBox 使用 NAT 方式网络的 SSH 连接

在RHEL 5.6上亲测解决问题。本文的 VirtualBox 是基于 Windows 平台环境,虚拟机中安装了 Ubuntu,即在 Windows 平台下通过 SSH 方式连接虚拟机中的 Ubuntu。  一直以来都使用 VirtualBox 来虚拟 Ubuntu 使用,而自己的电脑都是在家里使用,家里又配置了一个无线路由器,故我总是将 VirtualBox 的网络方式设置为桥接模式

2013-04-18 22:38:11 9424 1

转载 如何熟悉一个开源项目

转自:http://www.blogjava.net/killme2008/archive/2012/05/22/378885.html你有个任务,需要用到某个开源项目;或者老大交代你一个事情,让你去了解某个东西。怎么下手呢?如何开始呢?我的习惯是这样:1.首先,查找和阅读该项目的博客和资料,通过google你能找到某个项目大体介绍的博客,快速阅读一下就能对项目的目的、功能、基

2013-01-30 11:49:06 451

原创 内核态尝试缓存handle(file object)遇到的问题及解决思路

内核态尝试缓存handle(file object)遇到的问题及解决思路内核态LOG模块实现中,考虑到频繁打开关闭用户态LOG文件开销较大,考虑缓存handle(或对应的file object)。思路:首次通过ZwCreateFile()获得handle然后利用ObReferenceObjectByHandle()来获得对应的file object,将得到的file obj

2012-12-20 12:13:53 893

原创 WDM驱动改可手动加卸载的NT驱动

WDM驱动改可手动加卸载的NT驱动测试工具:osrloader把一个WDM类型的驱动改成可动态加载/卸载,需要做以下2个修改:1. 把SOURCES文件夹中的DRIVERTYPE=WDM去掉2.去掉AddDevice()例程

2012-11-14 20:47:44 742

原创 删除驱动符号链接出错-变量作用域和RtlInitUnicodeString的问题

关键词: windows驱动开发  删除符号链接出错  变量作用域问题 RtlInitUnicodeString摘要:NT式驱动中,在DriverUnload()中尝试删除之前创建的符号链接失败,最后发现原因是变量作用域和RtlInitUnicodeString的问题原始存在问题的简化代码如下:typedef struct _DEVICE_EXTENSION { UIN

2012-11-06 23:51:26 1142

原创 Wdm.h、Ntddk.h 和 Ntifs.h 的组织结构

http://msdn.microsoft.com/zh-cn/library/ff554739(VS.85).aspx在 Windows Vista 版本的 WDK 之前,用于驱动程序开发的主要头文件为 Wdm.h、Ntddk.h 和 Ntifs.h,它们包含很多重复声明。从 Windows Vista 版本的 WDK 开始,Wdm.h、Ntddk.h 和 Ntifs.h

2012-10-26 15:33:16 2105

转载 Linux IO调度器相关算法介绍

Linux IO调度器相关算法介绍转自:http://www.realzyy.com/?p=984IO调度器(IO Scheduler)是操作系统用来决定块设备上IO操作提交顺序的方法。存在的目的有两个,一是提高IO吞吐量,二是降低IO响应时间。然而IO吞吐量和IO响应时间往往是矛盾的,为了尽量平衡这两者,IO调度器提供了多种调度算法来适应不同的IO请求场景。其中,对数

2012-10-19 14:25:47 795

原创 使用Process Explorer来查看句柄泄露

Process Explorer(官方下载地址http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)下载后解压,直接运行就能看到详细的系统信息,包括CPU、IO、网络、进程等。要查看进程对应的句柄需要做以下操作(Process Explorer的使用一目了然,就查看句柄费了点劲,blog存档备用):打

2012-09-24 19:06:19 6377

转载 FCB CCB FileObject

CCB  ContextControlBlock  是存Private信息的,这个FO的特殊信息FCB  FileControlBlock          是存全局信息的FO    FileObject                   代表一个文件打开实例  之间关系: FO  与  CCB  是1:1的即一个FO有一个CCB根着FCB 与 CCB 是1:

2012-05-19 10:11:22 2018

转载 浅议Windows 2000/XP Pagefile组织管理

转自:http://www.cnblogs.com/Sonic2007/archive/2008/07/08/1238167.html任何时候系统内存资源相对磁盘空间来说都是相形见拙的。因为虚拟内存机制,使我们可以有相对丰富的地址资源(通常32bit的虚拟地址,可以有4G的寻址空间),而这些资源对物理内存来说一般情况是总是绰绰有余的。所以在现代操作系统中,总是在相对紧张时使用一些策略,如F

2012-04-27 11:59:36 850

Linux Device Drivers 3th(LDD3)源代码

《Linux Device Drivers 3th》(LDD3)书中的源代码,Linux驱动开发必学的

2011-10-24

<Windows程序设计>-王艳平

<Windows程序设计>-王艳平 人民邮电出版社 国内比较经典的windows程序设计的入门进阶书,评价很不错的。 《Windows 程序设计》从“Hello,World”这个简单的例子出发,通过多个实例,由浅入 深地讲述Win32 API 程序设计、类库框架设计、MFC 程序设计、内核模式程序设计等,使读 者在实践中熟练掌握Windows 程序设计模式,并有能力写出完成特定功能的用户应用程序和 简单的内核驱动程序。

2011-03-28

《精通MFC程序设计》,经典MFC编程学习教材

《精通MFC程序设计》由浅入深、循序渐进地介绍了Visual C++开发环境下MFC库的具体使用方法。《精通MFC程序设计》分9篇共30章,内容涵盖了Windows-VC-MFC、MFC框架及消息处理机制、MFC通用控件和对话框编程、文档-视结构、MFC数据库编程、MFC网络编程、注册表编程、进程线程和DLL、异常与调试以及.NET MFC应用等,其中的大部分内容都配有较为丰富的实现代码。   《精通MFC程序设计》的最大特色是内容丰富翔实、讲解细腻具体,对涉及MFC实现理论的部分均进行了较为深入的剖析,并且对于书中的大部分内容都结合工程实践给出了相应的实现代码,具有很强的针对性,力求让读者通过亲自动手做而掌握使用MFC开发工程的方法,学习尽可能多的知识。同时,对于开发中可能会遇到的问题也都给出了相应的提示或说明。   《精通MFC程序设计》主要定位于初、中级读者,同时也可用作高校相关专业以及培训班的参考教材(要求读者具备C++的基本语法知识)。

2010-03-28

Essential C++

第1章 C++ 编程基础(Basic C++ Programming) 1.1 如何撰写 C++ 程序 1.2 对象的定义与初始化 1.3 撰写表达式(Expressions) 1.4 条件(Conditaional)语句和循环(Loop)语句 1.5 如何运用 Arrays(数组)和 Vectors(向量) 1.6 指针带来弹性 1.7 档案的读写 第2章 面向过程的编程风格(Procedural Programming) 2.1 如何撰写函数 2.2 调用(invoking)一个函数 2.3 提供默认参数值(Default Parameter Values) 2.4 使用局部静态对象(Local Static Objects) 2.5 声明一个 inline函数 2.6 供应重载化函数(Overloaded Functions) 2.7 定义并使用 Template Functions(模板函数) 2.8 函式函数指针(Pointers to Functions)带来更大的弹性 2.9 设定表头档头文件(Header Files) 第3章 泛型编程风格(Generic Programming) 3.1 指针的数学运算 3.2 了解 Iterators(泛型指针) 3.3 所有容器的共通操作 3.4 使用循序式容器(Sequential Containers) 3.5 使用泛型算法 3.6 如何设计一个泛型算法 3.7 使用 Map 3.8 使用 Set 3.9 如何使用 Iterator Inserters 3.10 使用 iostream Iterators 第4章 以对象为基础(Object-Based)的编程风格 4.1 如何实现一个 Class 4.2 什么是 Constructors(构造函数)和 Destructors(析构函数) 4.3 何谓 mutable(可变)和 const(不变) 4.4 什么是 this 指针 4.5 Static Class Member(静态的类成员) 4.6 打造一个 Iterator Class 4.7 合作关系必须建立在友谊的基础上 4.8 实现一个 copy assignment operator 4.9 实现一个 function object 4.10 将 iostream运算符重载 4.11 指针:指向 Class Member Functions 第5章 面向对象(Object-Oriented)编程风格 5.1面向对象(Object-Oriented 编程概念 5.2 漫游:面向对象编程思维 5.3 不带继承的多态(Polymorphism without Inheritance) 5.4 定义一个抽象基类(Abstract Base Class) 5.5 定义一个派生类(Derived Class) 5.6 运用继承体系(Using an Inheritance Hierarchy) 5.7 基类应该多么抽象? 5.8 初始化、解构、与复制(Initialization, Destruction, an Copy) 5.9 在派生类中定义一个虚拟函数 5.10执行期的型别鉴定机制(Run-Time Type Identification) 第6章 以 template 进行编程 6.1 被参数化的型别(Parameterized Types) 6.2 Class Template 的定义 6.3 Tempalte 型别参数(type parameters)的处理 6.4 实作一个 Class Template 6.5 一个以 Function Template 完成的 Output运算符 6.6 常量表达式(Constant Expressions)与默认参数值(Default Parameters) 6.7 以 Template 参数作为一种设计策略 6.8 Member Tempalte Functions 第7章 异常处理(Exception Handling) 7.1 抛出异常(Throwing an Exception) 7.2 捕捉异常(Catching an Exception) 7.3 提炼异常(Trying for an Exception) 7.4 局部资源的管理 7.5 标准异常(The Standard Exceptions) 附录A 习题解答 附录B 泛型算法手册(Generic Algorithms Handbook) 附录C 中英术语对照(侯捷)

2010-03-25

《深入理解计算机系统》-第一本将软件和硬件理论结合讲述的教程

国外经典计算机科学教材系列,第一本将软件和硬件理论结合讲述的教程,覆盖计算机导论、体系结构和处理器设计等多门课程。从程序员的视角,看计算机系统,对提高编程很有好处。

2010-01-26

《Visual C++网络通信编程实用案例精选》全部源代码

《Visual C++网络通信编程实用案例精选》是一本介绍利用Visual C++进行网络通信程序开发的书籍。书中精选了大量网络实例,涵盖了本地计算机网络编程、局域网网络通信编程、IE编程、网络通信协议编程、串口通信编程、代理服务器编程和高级网络通信编程。文件里是它的全部源代码

2010-01-26

无线传感器网络中sep路由协议的MATLAB仿真

sep路由协议是无线传感器网络中一种典型的改进分簇路由协议,本仿真源码对于设计wsn路由设计和仿真有很好的借鉴作用 详见SEP.m文件

2009-09-17

无线传感器网络定位DV_HOP算法的实现(MATLAB)

无线传感器网络定位 无需测距经典定位方法DV_HOP算法的MATLAB实现,是学习无线传感器网络定位比较好的学习资料,

2009-09-17

MATLAB工具箱包括:模糊逻辑,多维小波变换,时频分析,信号处理

MATLAB工具箱包括:模糊逻辑,多维小波变换,时频分析,信号处理

2008-10-05

空空如也

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

TA关注的人

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