- 博客(154)
- 资源 (6)
- 收藏
- 关注
原创 利用模板巧妙实现二级接口
在面向接口的编程中,如果只有一级接口,那调用和实现都比较简单,但是如果存在二级接口,那么实现的形式就会复杂许多,作者经过研究,发现可以使用模板巧妙实现二级接口,并且实现方法比较简练。
2015-12-13 17:25:50
874
原创 正则表达式语法总结
正则表达式定义了一套完善而复杂的语法规则,用于匹配有特定模式的字符串。在正则表达式中,大部分字符串都匹配自己(即普通字符),只有少量的字符被用于定义特殊的匹配模式语法,他们是:.^$()*+?{}[]\|。1. 点号(.)可以匹配任意的单个字符,是单字符的通配符。2. ^匹配行的开头。3. $匹配行的末尾。4. ()用于定义一个正则表达式匹配子元素(子表达式),可以被引用或者重复。
2015-11-22 21:33:07
565
原创 shell变量的字符串操作
如果一个shell变量的值是一个字符串,那么我们一些操作完成字符串的简单处理:假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt1.得到字符串的长度:${#file} #得到文本长度2.用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${f
2015-11-22 20:08:13
1167
转载 C,C++开源项目中的100个Bugs
俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目,诸如Apache Http Server、Chromium、Clang、CMake、MySQL等的源码进行了分析,找出了100个典型的Bugs。个人觉得这份列表对C/C++ 程序员有一定参考意义。与其说事后用静态工具分析,倒不如在编码时就提高自知自觉,
2015-08-23 17:25:14
821
转载 linux文件流与文件描述符之间的转换
linux文件流与文件描述符之间的转换1、已知文件流指针,获取对应的文件描述符 int fileno(FILE *stream); 主要应用:如果程序先前用fopen打开了一个文件,但是又想对其进行锁定操作, 例如 int fcntl(int fildes, int command, struct flock *flock_structure)(注意:comman
2015-08-14 18:13:39
1982
转载 linux文件流与文件描述符之间的转换
linux文件流与文件描述符之间的转换1、已知文件流指针,获取对应的文件描述符 int fileno(FILE *stream); 主要应用:如果程序先前用fopen打开了一个文件,但是又想对其进行锁定操作, 例如 int fcntl(int fildes, int command, struct flock *flo
2015-08-14 18:11:23
811
原创 KMP算法中心思想
KMP是一种高效的字符串查找算法,主要用于在主串中查找一个特定字串(模板)出现的位置(或是否出现)。 朴素字符串查找算法主要是通过逐次比较来实现的,在主串中找到一个位置I和字串起始字符一样时,便顺次比较后续字符。若匹配成功,则输出相应结果。若不匹配,则从位置I的下一个位置I+1开始比较。若主串长度为M,字串长度为N的最多需要比较M*N次。 KMP比较主要的改进是,充分利用已经比较的结果和字符串
2015-08-13 17:22:18
1421
转载 共享内存
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。
2015-08-12 10:45:22
513
转载 select, iocp, epoll,kqueue及各种I/O复用机制
首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)blocking I/O 这个不用多解
2015-07-18 10:50:18
767
转载 linux下的头文件 及C/C++头文件 一览表
linux下编程常用头文件一览============================================================================================== 验证程序断言 cpio归档值 字符类型 目录项 出错码
2015-07-18 09:56:59
963
转载 new 对象加括号和不加括号的区别
在new对象的时候有加上(),有不加(),不知道这个到底是什么区别?比如:[cpp] view plaincopyprint?CBase *base = new CDerived(); CBase *base = new CDeviced; [cpp] view plaincopyprint?CBase *base
2015-07-17 21:30:31
1380
转载 c++三种野指针
野指针,也就是指向不可用内存区域的指针。如果对野指针进行操作,将会使程序发生不可预知的错误,甚至可能直接引起崩溃。 野指针不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是野指针是很危险的,也具有很强的掩蔽性,if语句对它不起作用。 造成野指针的常见原因有三种: 1、指针变量没有被
2015-07-17 21:03:16
2704
转载 shell中的${},##和%%的使用
假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt${file#*.}:删掉第一个 . 及其左边的字符串:
2015-07-17 19:24:35
578
转载 一个简单的将GUI程序的log信息输出到关联的Console窗口中
// .h 文件#pragma onceclass CConsoleDump{public: explicit CConsoleDump(LPCTSTR lpszWindowTitle = NULL); virtual ~CConsoleDump(void);public: BOOL DUMP(LPCTSTR lpszFmt, ...); BOOL ShowWindow(BOO
2015-04-17 15:58:29
1341
原创 Python 网络编程
今天学习了一个python 网络编程,感觉比较简单,也就是基本那几步,create--bind---listen -->receive/send---->close.还学习一个Tcp版 Server编程框架,可以支持多个socket连接的那种。感觉也还可以。其中最简单的框架为TCPServer+BaseRequestHandler:。简单的例子如下:import SocketServer
2015-02-01 16:49:05
1050
原创 python创建xml文件
本文是一个使用ElementTree有关类库,生成xml文件的例子# *-* coding=utf-8from xml.etree.ElementTree import ElementTreefrom xml.etree.ElementTree import Elementfrom xml.etree.ElementTree import SubElementfrom xml.etre
2015-01-25 21:16:16
2384
1
原创 Python 解析xml文件
python有三种方法解析XML,分别是SAX,DOM,以及ElementTree,其中ElmentTree比较容易使用,其API比较方便友好。代码可用性好,速度快,消耗内存少。xml中的元素主要有:tag,value,attribute 一个简单的python 解析xml的例子如下:Xml文件为: auto_userone
2015-01-25 13:29:13
1209
原创 2014年简单年终总结
又到了自己给自己写年终总结的时候了,看着自己年初制定的计划和目标。感觉不仅执行严重脱离计划,打了许多折扣,而且好像事情都偏离了目标。哎,又是一声叹息。今年自己好像有没什么长进。这一年就过去了。回顾这一年的生活。总结下来就是两个字,忙,乱,年初添了一个宝宝后,感觉事情扑面而来,一个接着一个。老婆说,这不是添了一个人,而是添了一大家子人。好多意外的事,接连发生,真的感觉有些hold不住了。搞得自己
2014-12-28 11:03:34
1016
原创 GetQueuedCompletionStatus返回值的处理顺序
IOCP 是5种socket 编程模型里最复杂的一种,只使用几个api,就能使程序支持成百上千个连接,而GetQueuedCompletionStatus函数又是IOCP里最重要的api,这个函数返回值含有各种信息。一般的处理顺序为:是先判断函数GetQueuedCompletionStatus的返回值,如果失败,看看WSAGetLastError()的值。否则检查OVERLAPP结构
2014-12-09 14:03:26
20388
原创 windows平台没有提供的两个字符串操作函数。
在看一些开源代码时,经常看到一些字符串操作函数,这些函数在Linux平台下是有的,但在windows平台上,MS没有提供。因此在软件中不得不自己实现.
2014-11-07 09:48:44
766
原创 Python 学习笔记四---event的使用
Python提供了Event对象用于线程间通信,它是由线程设置的信号标志,如果信号标志位真,则其他线程等待直到信号接触。 Event对象实现了简单的线程通信机制,它提供了设置信号,清楚信号,等待等用于实现线程间的通信。 1 设置信号 使用Event的set()方法可以设置Event对象内部的信号标志为真。Event对象提供了isSet()方法来判断其内部信号标志的状
2014-11-01 16:16:14
12346
原创 iostream 继承结构
在刚开始学习C++,第一步就是 Include 头文件,使用cin和cout函数输入输出数据,可是你知道iostream的整个体系结构吗?下图展示iostream的继承结构。
2014-11-01 15:57:41
2635
1
原创 TCP Socket 粘包
这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开
2014-10-16 11:04:26
1267
转载 C文件读写函数介绍
1.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。 参数filename指向要打开的文件名,mode表示打开状态的字符串,其取值如下: 字符串 含义 "r" 以
2014-10-15 15:53:58
691
转载 一次服务器CPU占用率高的定位分析
背景:通过性能监控发现上线服务器cpu某核占用率已经达到了100%,而且是由我们的某个核心服务导致的。幸亏由于我们的服务进程由多个相同worker(线程)调度承担的,所以除了CPU占用率高之外,并没有对服务造成影响。随着上次我们找到那个吃IO的罪犯,这次我们要追捕的是潜伏在团体中的特务,更加惊险刺激哟!
2014-10-12 22:02:39
1017
原创 UltraEdit的高级查找功能
程序员除了使用IDE编辑代码外,也经常使用一些轻量级的编辑器,如:UltraEdit,NotePad++,在这些编辑器中,我们经常用到的功能是“查找”,“替换”。这些软件都提供了丰富的查找替换功能,甚至还提供了正则表达式用来辅助查找替换。下表是UE的正则表达式语法。正则表达式 (UltraEdit 语法):符号功能%
2014-10-11 11:07:27
17390
转载 windbg远程调试方法
[转] C++调用约定和名字约定 Window Hook 技术详解[转] windbg远程调试方法 2014-04-22 13:46:37| 分类:Debug_Crack | 标签:|举报|字号大中小 订阅From: http://blog.csdn.net/ytfrdfiw/article
2014-10-10 15:17:26
1182
原创 一个使用MFC实现Com聚合的例子
在网上搜Com聚合的例子,发现都比较少,大多偏于原理性的介绍。由于模拟MFC 和真正使用MFC时,在查询IUnknown接口时,流程上有所不同,所以模拟MFC的方式与直接从CCmdTarget派生时,在流程上有较大的差别。即使懂了Com聚合的原理,也可能无法直接使用MFC实现Com 聚合,本人经过一番摸索,终于实现了直接使用MFC实现COM聚合。
2014-10-10 11:48:34
1341
转载 各种窗口关系
1.Pop-up窗口: 一个弹出窗口是必须具有WS_POPUP属性的窗口,弹出窗口只能是一个Top-Level窗口,不能是子窗口,弹出窗口多用于对话框和消 息框,也可以用于应用程序的主窗口, 弹出窗口可以不必具有标题栏2.Overlapped窗口: 一个重叠窗口是一个必须具有WS_OVERLAPPED属性的窗口,也就是一个重叠窗口必须具有边框,标题栏,客户区域。重叠窗口可以是一个子
2014-10-09 16:34:10
881
原创 log4cpp日志无法分卷的解决方案
我们的项目采用log4cpp作为日志输出模块,但在使用中发现,如果是一个Services,或者是在Windows Server版本上,会出现日志无法正常分割的现象。即日志一直往一个文件里持续写,即使超过规定的文件大小,也不会分卷。
2014-09-28 15:20:15
2435
1
RTP协议中文版大全
2020-11-27
onvif模拟器包括客户端和服务器端,支持token鉴权
2023-03-21
Frepple APS建模教程(python版).pdf
2021-11-27
libev 安装包
2017-10-18
linux Shell 脚本攻略(中文版带书签)
2017-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅