- 博客(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 213
原创 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 302
原创 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 345
原创 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 172
原创 工作方法-scrum+番茄工作法
1.产品和开发团队近期的工作分析和安排,使用scrum。产品的工作:通过product backlog来列出开发团队近期的工作安排:通过sprint backlog来列出,由个人认领,并估算(优先级,工作量,需要的时间) 2.个人每天的工作安排使用番茄工作法来安排,番茄工作法有5中模式:overview, focus, self-inspect, goal free, back
2017-04-11 10:48:34 325
原创 需求分析时的4个关注点
backgroud priority effort risk backgroud: 需求的来源和出发点priority: 该需求在当前产品体系中的优先级,是否需要优先effort: 实现该需求有多大的工作量,以目前团队的平均开发水平来衡量risk: 实现该需求有哪些风险(技术难度上的,依赖其他需求的实现或其他人/团队的结果)
2017-04-11 10:48:19 415
原创 编程语言和学习
在这篇Scala社区赢得人心的5大技巧的文章里,第一条吸引了我:“1.不要陷入C++一样的、不断膨胀的问题里,留下太多的选择,且没有清晰的最佳实践。” 我对这条深有同感,我目前使用的主要语言之一是C++,但更准确地说是其中的一个小子集,而且每次想从这个子集里跳出来,学学别的内容,向“更高级,更资深”的C++使用者迈进时,常常赶到很困惑,C++太庞大了,不知道要往哪里走,而且要真正地把C
2017-04-11 10:48:10 286
原创 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 409
原创 socket使用非阻塞connect
在使用tcp的connect调用时,默认是使用阻塞方式,当服务器当前不可用时,connect会等待(内部在重试?)直到超时时间到达,而这个超时时间是系统内核规定的,不能使用setSocketOpt来设置。在碰到服务器不可用,上层逻辑进行重试时,如果超时时间过长,会产生卡死的感觉,用户体验也不佳,所以需要控制connect的超时时间。参考网络上的资料,这里使用select。实现方式是:将so
2017-04-11 10:47:43 334
原创 Linux信号
读书笔记 信号是由用户/系统或进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。Linux信号可由如下条件产生:1).对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。比如输入Ctrl+C通常会给进程发送一个中断信号。2).系统异常。比如浮点异常和非法内存段访问。3).系统状态变化。比如alarm定时器到期将引起SIGALARM信号。4).运行
2017-04-11 10:47:25 143
原创 Qt中为QPushButton添加背景图片
有2种方式,一种是在代码中设置,另外一种是直接在Qt Creator中直接设置,下面是第二种 参考:http://doc.qt.io/qt-4.8/stylesheet-examples.html扩展阅读:stylesheet,CSS与QSS
2017-04-11 10:47:15 3403
原创 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 3531 1
原创 64位系统上32位进程拷贝文件到System32目录时的重定向
64位系统上,32位进程拷贝文件到"System32"目录时,会被文件系统重定向到"SysWOW64"目录 要禁用这种重定向,需要用到下面2个API:Wow64DisableWow64FsRedirection()Wow64RevertWow64FsRedirection()下面是微软的示例代码: #ifdef _WIN32_WINNT #undef _WIN32_
2017-04-11 10:46:50 1079
原创 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 933
原创 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 370
原创 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 1674
原创 win应用只允许单个实例运行,并将已运行实例窗口置顶
关键词:windows,c++,桌面应用,单个实例,窗口置顶目标:1.判断本程序是否已有一个实例在运行。2.若有,则激活已在运行的实例(将其窗口置顶),并退出当前运行。 1.使用semaphore来检测是否已有实例在运行(也可以用mutex,文件等其他方式)HANDLE g_hSingleSema = ::CreateSemaphore(NULL, 1, 1, _T("sing
2017-04-11 10:45:46 339
原创 为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 3896
原创 windows session logoff时进行处理动作
目标:Windows session logoff时得到通知,进行一些记录/清理工作测试平台: win7 x64 logoff时系统会发送WM_ENDSESSION消息,如果某个应用对这个消息的处理返回0,那么logoff动作会暂停,系统停止给其他应用发送WM_QUERYENDSESSION消息。如果返回TRUE,那么系统后续会给响应的应用发送WM_ENDSESSION消息。我
2017-04-11 10:45:33 478
原创 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 323
原创 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 2853 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 1086
原创 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 245
原创 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 262
原创 字符串循环右移-c语言
一个长度为len的字符串,对其循环右移n位 [期望]char str[] = "abcdefg";右移3次后,变成"efgabcd" [思路]思路1.如果用每移动一次,就要把整个字符串整体移动一次的方法,显得太费劲了。我们可以用空间换时间,通过内存拷贝来实现。需要新申请一块相同大小的内存,把原字符串的后n个字节拷贝到它的开始地址,把原字符串的前(len-n)个字节拷贝到它的
2017-04-11 10:44:44 909
原创 字符串逆序-c语言
给定一个含有n个元素的字符串,实现逆序。 这是个很基础的问题,实现方式也是很常见的c语言思路。虽然简单,但是仍然记录下来。[期望]比如char str[] = "abcdefg";逆序后为:"gfedcba";[思路]分别从字符串的头和尾部向中间进发,依次交换头尾的值,直到在中间相遇。代码:#include #include string.h>v
2017-04-11 10:44:38 640
原创 查找单词序列在文章中出现的次数
查找单词序列在文章中出现的次数 [期望]对于测试char *substrs[3] = {"ffff", "cindy", "Bill"};char *str = "Hellocindy, BillGatesBill---cindy-ffffffxxx23424cindycindy";找到的结果应该是:"ffff" => 3,"cindy" => 4,"Bill" => 2
2017-04-11 10:44:32 392
原创 两个已排序数组的合并-C语言
最近在纸上写一个已排序数组的合并时,花了超过预期的时间。仔细想想,这种要放到毕业找工作那会两下就出来了,原因还在于工作后对基础没有重视,疏于练习。说开一点,现在搜索引擎的发达确实给问题的解决带来了便利,但是久而久之,对很多东西的掌握其实并不深入。比如淘宝系的人经常分享一些linux内核IO优化相关的内容,咋看一下,原来是这样,觉得也不难嘛,其实不然,如果给一张白纸让你自己把流程画出来,讲解清楚
2017-04-11 10:44:27 1206
原创 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 172
原创 我所知道的分布式C++系统基础设施
时间:20170324常用基础模块(非分布式也用到的)配置文件 yaml 官网地址log log4cpp [官网地址]数据的动态加载 在不停进程的情况下,实时更新数据。rpc 包括rpc client和rpc serverzookeeper client 用于向zookeeper server注册,register(zk_path, server_port)
2017-03-24 10:24:02 156
转载 VirtualBox 使用 NAT 方式网络的 SSH 连接
在RHEL 5.6上亲测解决问题。本文的 VirtualBox 是基于 Windows 平台环境,虚拟机中安装了 Ubuntu,即在 Windows 平台下通过 SSH 方式连接虚拟机中的 Ubuntu。 一直以来都使用 VirtualBox 来虚拟 Ubuntu 使用,而自己的电脑都是在家里使用,家里又配置了一个无线路由器,故我总是将 VirtualBox 的网络方式设置为桥接模式
2013-04-18 22:38:11 9507 1
转载 如何熟悉一个开源项目
转自:http://www.blogjava.net/killme2008/archive/2012/05/22/378885.html你有个任务,需要用到某个开源项目;或者老大交代你一个事情,让你去了解某个东西。怎么下手呢?如何开始呢?我的习惯是这样:1.首先,查找和阅读该项目的博客和资料,通过google你能找到某个项目大体介绍的博客,快速阅读一下就能对项目的目的、功能、基
2013-01-30 11:49:06 457
原创 内核态尝试缓存handle(file object)遇到的问题及解决思路
内核态尝试缓存handle(file object)遇到的问题及解决思路内核态LOG模块实现中,考虑到频繁打开关闭用户态LOG文件开销较大,考虑缓存handle(或对应的file object)。思路:首次通过ZwCreateFile()获得handle然后利用ObReferenceObjectByHandle()来获得对应的file object,将得到的file obj
2012-12-20 12:13:53 905
原创 WDM驱动改可手动加卸载的NT驱动
WDM驱动改可手动加卸载的NT驱动测试工具:osrloader把一个WDM类型的驱动改成可动态加载/卸载,需要做以下2个修改:1. 把SOURCES文件夹中的DRIVERTYPE=WDM去掉2.去掉AddDevice()例程
2012-11-14 20:47:44 754
原创 删除驱动符号链接出错-变量作用域和RtlInitUnicodeString的问题
关键词: windows驱动开发 删除符号链接出错 变量作用域问题 RtlInitUnicodeString摘要:NT式驱动中,在DriverUnload()中尝试删除之前创建的符号链接失败,最后发现原因是变量作用域和RtlInitUnicodeString的问题原始存在问题的简化代码如下:typedef struct _DEVICE_EXTENSION { UIN
2012-11-06 23:51:26 1154
原创 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 2120
转载 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 805
原创 使用Process Explorer来查看句柄泄露
Process Explorer(官方下载地址http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)下载后解压,直接运行就能看到详细的系统信息,包括CPU、IO、网络、进程等。要查看进程对应的句柄需要做以下操作(Process Explorer的使用一目了然,就查看句柄费了点劲,blog存档备用):打
2012-09-24 19:06:19 6417
转载 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 2036
转载 浅议Windows 2000/XP Pagefile组织管理
转自:http://www.cnblogs.com/Sonic2007/archive/2008/07/08/1238167.html任何时候系统内存资源相对磁盘空间来说都是相形见拙的。因为虚拟内存机制,使我们可以有相对丰富的地址资源(通常32bit的虚拟地址,可以有4G的寻址空间),而这些资源对物理内存来说一般情况是总是绰绰有余的。所以在现代操作系统中,总是在相对紧张时使用一些策略,如F
2012-04-27 11:59:36 867
《精通MFC程序设计》,经典MFC编程学习教材
2010-03-28
Essential C++
2010-03-25
《深入理解计算机系统》-第一本将软件和硬件理论结合讲述的教程
2010-01-26
《Visual C++网络通信编程实用案例精选》全部源代码
2010-01-26
无线传感器网络中sep路由协议的MATLAB仿真
2009-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人