自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (4)
  • 收藏
  • 关注

原创 C++对象在作为函数参数时候的拷贝研究

介绍C++对象在作为函数参数以及返回值的copy策略一直是我困扰的一个问题,特别是在今天看到了C++11的新增加的特性std::move以及右值概念之后,激发了我的求知欲,决定把这一块详细的搞清楚。测试对象代码写了个简单的测试对象,在每个不同的构造函数以及析构函数中打印logclass A{public: A() { cout << "construct" <<

2018-02-06 11:38:33 3051

原创 MySql进程使用的文件描述符数量的问题

在CentOS 6.5, mysql版本为5.1的机器上,查看mysql进程的文件描述符使用量 使用命令// grep 后面跟的是mysql进程号lsof -n |awk '{print $2, $NF}' | sort | uniq -c | sort -nr | grep 1697 | more可以看到每个数据库文件打开的文件数量只占用了一个文件描述符,即使当前mysql启动了多个子进程但在

2018-02-06 11:37:50 904

原创 131. Building Outline

画建筑轮廓LintCode链接题目描述水平面上有 N 座大楼,每座大楼都是矩阵的形状,可以用一个三元组表示 (start, end, height),分别代表其在x轴上的起点,终点和高度。大楼之间从远处看可能会重叠,求出 N 座大楼的外轮廓线。 外轮廓线的表示方法为若干三元组,每个三元组包含三个数字 (start, end, height),代表这段轮廓的起始位置,终止位置和高度。 参考下面的图

2018-02-06 11:35:09 435

原创 104. Merge k Sorted Lists

合并k个已排序的链表LintCode链接题目描述合并k个已排序的链表样例对于下面三个链表,输出-1->2->4->null[ 2->4->null, null, -1->null],思路对于写过归并排序的人来说,题目比较简单,思路就是从k个链表中,找到当前最小的元素,插入到返回的链表中,并从被选择的链表中删除这元素代码class Solution {public: /**

2018-02-06 11:34:21 233

原创 86. Binary Search Tree Iterator

遍历二查找叉树LintCode链接题目描述设计一个迭代器,该迭代器可以按照以下要求一棵二叉查找树 - 遍历的顺序按照从小到大的排序规则 - next与hasNext的时间复杂度平均为O(1)样例对于下面的二叉树,使用迭代器遍历将按照如下顺序遍历:[1, 6, 10, 11, 12] 10 / \1 11 \ \ 6 12思路首先需要理解二叉查

2018-02-06 11:33:44 256

原创 81. Data Stream Median

数组最中间值LintCode链接题目描述输入的一组数字,返回每次输入新数字之后,该序列的最中间值 说明最中间值的意思是指,一个有序数组的最中间的那个值。如果这个有序数组A的长度n为偶数,则中间值为A[n/2],如果为奇数,中间值为A[(n-1)/2]。例如:如果A=[1,2,3], 中间值为2. 如果A=[1,19], 中间值为1.样例给定输入数字为: [1, 2, 3, 4, 5], 返回 [

2018-02-06 11:33:05 332

原创 75. Find Peak Element

查找无续数组的峰值LintCode链接题目说明给出一个整数数组(size为n),其具有以下特点: - 相邻位置的数字是不同的 - A[0] < A[1] 并且 A[n - 2] > A[n - 1]假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。样例给出数组[1, 2, 1, 3, 4, 5, 7, 6]返回1, 即数值 2 所在位置

2018-02-06 11:29:57 327

翻译 C++ stl算法——partition

函数声明template< class ForwardIt, class UnaryPredicate >ForwardIt partition( ForwardIt first, ForwardIt last, UnaryPredicate p );作用对[first, last)元素进行处理,使得满足p的元素移到[first, last)前部,不满足的移到后部,返回第一个不满足p元素所在的迭代

2018-02-06 11:28:32 4604 1

原创 tcpdump 两个通信进程在同一台机子

如果想要监听的两个进程在同一台机子上的时候,可以使用tcpdump -i lo来启动tcpdump,其他参数和正常使用tcpdump一样

2015-12-30 13:31:32 1372

原创 zipOpen2_64 unzOpen2_64 return NULL

也是醉了,zlib在Windows下的坑实在太多了,这已经是第三个了,还没在Linux下测试,不知道Linux下还有没有坑。。照着minizip和miniunz封装了两个类,发现在压缩使用APPEN属性的时候zipOpen2_64 return NULL,以及在unzOpen2_64任何情况下都return NULL,刚开始以为自己代码写错了,结果发现直接启动官方程序也是这样。。调试发现Window

2015-12-21 16:52:09 3202 1

原创 minizip error LNK2019: unresolved external symbol

编译使用到 zlibwapi.lib 库的项目是发现使用到的minizip API都出现link error 解决办法:右键项目-属性-配置属性-C/C++-预处理器定义中加入一行ZLIB_WINAPI即可

2015-12-21 14:47:04 823

原创 libzip 编译 minizip 运行时 CreateFile2 无法在Kernel32定位

编译libzip使用vs打开(我用的是2012)zlib-1.2.8\contrib\vstudio\vc11目录下的zlibvs.sln,用这个会包含minizip代码,如果只想压缩和解压内存数据,可以用cmake来编译。 编译的时候会报:error LNK2026: 模块对于 SAFESEH 映像是不安全的。解决办法:右键 zlibvc-属性-配置属性-链接器-命令行 在后面加一行 /SAFE

2015-12-17 15:27:50 4134

原创 libevent callback event=EV_ET

公司要求将底层的epoll和IOCP用libevent来改写,简化代码,研究之后很快搞定,但是大并发的时候会出现诡异问题,通过打log发现event事件回调函数传入的event=EV_ET,感觉不对劲,只有EV_ET没有EV_READ和EV_WRITE出现,我想到的解决方案是直接再次add回去,但经过发现还是会有问题然后去扒libevent源码,在evmap.c 404行 if 判断那里打

2015-11-10 17:05:43 2081

原创 Linux下将MySql静态编译到程序中

需求将mysql静态库编译到可执行文件中,减少对.so文件的依赖编译步骤cmake下载 https://cmake.org/download/ 直接下载bin版本即可使用mysql c connect下载安装 http://dev.mysql.com/downloads/connector/c/ 选择source code的 tar.gz打包版本 编译命令: tar -xvzf

2015-10-21 13:37:00 3461

原创 Linux 常用命令——df, du, ln

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/84563331. df 列出文件系统的整体磁盘使用量2. du 评估文件系统的磁盘使用量(常用在推估目录所占容量),也可以计算文件或文件夹大小3. ln 创建实体连接(hard link) 或 符号连接

2012-12-31 21:45:00 20226 1

原创 Linux 常用命令——which, whereis, locate, find

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/84553991. which 查找使用命令所在的位置2. whereis 搜索文件,跟locate一样只搜索数据库3. locate 搜索文件,只搜索数据库,默认每天更新一次,收到更新使用updatedb

2012-12-31 15:32:09 1107

原创 Linux 常用命令——umask, chattr, lsattr

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/84548901. umask 新建文件或文件夹的默认权限2. chattr 修改文件或文件夹的隐藏属性3. lsattr 显示文件或文件夹的隐藏属性

2012-12-31 12:58:39 819

原创 Linux 常用命令——touch

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8454862

2012-12-31 12:40:39 822

原创 Linux 常用命令——cat, tac, nl, more, less, head, tail, od

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/84535841. cat 由第一行开始显示文件内容2. tac 由最后一行开始显示文件内容(刚好和cat字母相反)3. nl 按行号显示文件内容4. more 一页一页翻动的读取5.

2012-12-30 22:54:21 3658

原创 Linux 常用命令——ls

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8453422

2012-12-30 20:03:59 4193

原创 Linux 常用命令——chgrp, chown, chmod

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/84534021. chgrp 改变文件或文件夹组2. chown 改变文件或文件夹拥有者3. chmod 改变文件或文件夹权限

2012-12-30 19:59:42 2293

原创 Linux 常用命令——cd, pwd, mkdir, rmdir, PATH设置

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/84533821. cd 进入到目录2. pwd 显示当前工作目录3. mkdir 创建空文件夹4. rmdir 删除空文件夹5. PATH 显示与设置

2012-12-30 19:45:11 2153

原创 Linux vim设定Tab键缩进

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8452347Linux系统中vim设置tab键的宽度 在 Vim 中可以很方便的根据不同的文件类型来设置。使用 tab 制表符或者空格还可以设置长度,非常灵活。在自己的家目录下建立.vimrc文件。终端输入vi ~/.vimrc 回车。

2012-12-30 11:16:30 11162 2

原创 Win32 程序 控件风格和预览不一样的问题

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8225841今天终于解决了自己一直想解决的问题:我在使用VC编程时,不管是Win32或者MFC都碰到这种情况:在对话框编辑器中预览对话框界面,对话框中按钮是这样的:但是运行程序之后,又变成这样了:变得好丑,一直想解决这个问题,今天终于

2012-11-26 14:54:03 1424

原创 VS2012 使用对话框时 工具箱没有控件问题

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8224912今天在刚装了VS2012,但是使用对话框的时候发现工具箱没有试用的控件可以拖拉。百度了下给出方法:1. 首先到开始菜单找到该软件:2. 输入:devenv.exe /resetsettings 回车,该命令重置VS所有设置,并且会打开

2012-11-26 11:25:19 5220 1

原创 Windows核心编程学习笔记(23)--纤程

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8202023Windows提供纤程是为了帮助各个公司更快地、正确地将它们的代码从UNIX移植到Windows中。但我们要记住,自己在Windows上设计程序时,应该避免使用纤程,而使用Windows提供的线程机制。首先要了解的是,纤程是在用户模式

2012-11-20 09:28:47 1521

原创 Windows核心编程学习笔记(22)--Windows线程池

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8194020Windows线程提供了一个线程池机制来简化线程的创建,销毁以及日常管理,避免了线程频繁创建和销毁的开销。一下介绍的与现场池有关的函数是新的线程池API,只能运行在Windwos Vista及以后版本。这些线程池函数可以帮助我们做以下

2012-11-17 20:53:18 1015

原创 Windows核心编程学习笔记(21)--同步设备I/O与异步设备I/O2

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/81869611. 异步设备I/O基础异步设备I/O是指,当一个线程向设备发送一个异步I/O请求时,这个I/O被传送给设备驱动程序,后者负责完成实际的I/O惭怍。当驱动程序在等待设备响应的时候,应用程序的线程并没有因为要等待I/O请求完成而被挂

2012-11-17 09:40:27 1899

原创 Windows核心编程学习笔记(20)--同步设备I/O与异步设备I/O1

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/81813381. 打开和关闭设备首先看下Windows常用的设备和打开他们的函数:根据上述表格打开一个设备后获得一个用来标志设备的句柄,可以将该句柄传给其他函数来与设备进行通信。例如:调用SetCommConfig设置

2012-11-14 20:49:25 1381

原创 Win32控件使用——Edit控件

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8112844Edit控件是一个很强大的输入控件,可以处理很多样式,通过VS的控件属性来设置,有单行,多行,密码框,滚动条等。和Button控件一样,编辑框想父窗口发送WM_COMMAND消息,各个参数的意义也和Button控件的一样:

2012-10-25 21:15:44 5881

原创 Win32控件使用——Button控件

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8112652 Button控件是最简单的控件,它一般只处理单击事件,当鼠标点击Button控件时会像父窗口发送WM_COMMAND消息,父窗口可以通过处理WM_COMMAND消息来处理哪个按钮的单击事件。在WM_COMMAND消息中,WPARAM参数

2012-10-25 20:26:06 2416

原创 Windows核心编程学习笔记(19)--内核模式下的线程同步2

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8105302 1. 互斥量内核对象互斥量内核对象用来确保一个线程独占对一个资源的访问,该对象包含一个使用计数、线程ID以及递归计数。互斥量的行为和关键段完全相同,但是互斥量是内核对象,而关键段是用户模式下的,所以互斥量比内核对象慢

2012-10-25 09:58:09 1048

原创 Windows核心编程学习笔记(18)--内核模式下的线程同步1

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8101549虽然用户模式下的线程同步机制提供了非常好的性能,但它们也存在一些局限性,不适用于许多应用程序。所以操作系统提供了使用内核模式来对线程同步,内核对象的用途要广泛很多,实际上内核对象唯一的缺点就是它们的性能。我们讨论过的好几种内核对象(进程,

2012-10-23 15:52:04 866

原创 Windows核心编程学习笔记(17)--用户模式下的线程同步

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8098633 1. Interlocked系列函数:在用户模式下Windows提供了简单的Interlocked系列函数来提供线程同步的操作,我们无需知道系统是怎么实现这些函数的,只需知道Interlocked系列函数是一个院子操作,在调用的时候

2012-10-22 15:34:27 1188

原创 Windows核心编程学习笔记(16)--线程同步

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8097806 1. 为什么需要线程同步当应用程序使用多线程时候,很多情况下我们将让多个线程访问某一个共享资源,在访问的时候我们就需要考虑的线程同步的问题,例如下面的代码:long g_x = 0;DWORD CALLBACK Thread

2012-10-22 11:27:02 732

原创 Windows核心编程学习笔记(15)--进程和线程与CPU的关联性

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8096253 默认情况下,Windows Vist或以后版本在给线程分配CPU时,使用软关联,即如果其他因素一样,系统将是线程在上一次运行的处理器上运行。Windows还支持硬关联,即可以控制线程在某些特定CPU上运行(如果有多个CPU的话),可以使

2012-10-21 21:27:13 1602

原创 Windows核心编程学习笔记(14)--进程和线程的优先级

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8095467 1. 进程优先级Windows支持6个优先级类,从小到大分别为:idle,blow normal,normal,above normal,high,real-time。其中normal是在ui常用的优先级类,为99%的用户使用。

2012-10-21 17:24:50 4511

原创 Windows核心编程学习笔记(13)--浅谈线程上下文

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8095311 系统使用CONTEXT对象来记住线程的状态,这样线程在下一次获得CPU可以运行时,就可以从上次停止处继续,WinNT.h的头文件中给出了CONTEXT的数据结构,但是需要注意的是,成员的具体情况取决于Windows运行在什么CPU上。下面给

2012-10-21 15:08:50 1313

原创 Windows核心编程学习笔记(12)--线程与进程运行的时间

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8093724 如果是一般精度要求可以使用GetThreadTimes和GetProcessTimes函数来获取时间,原型如下:// 以下获得的时间都是以100ns为单位,从1601/01/01子时开始计算的时间;BOOL GetThreadTim

2012-10-20 19:45:04 1442

原创 Windows核心编程学习笔记(11)--线程调度

Drecik学习经验分享转载请注明出处:http://blog.csdn.net/drecik__/article/details/8091304 线程的挂起与恢复在线程对象中有一个值表示线程的挂起计数,在调用CreateProcess或CreateThread时,系统将创建线程的内核对象,并把挂起计数初始化为1,因为线程初始化需要时间,这样可以防止线程在初始化的时候被执行

2012-10-19 20:59:08 870

Mega-Fiers3.49.zip

Mega-Fiers3.49

2022-01-13

基于SOCKET的完成端口示例

基于SOCKET的完成端口示例,可以查看我对完成端口介绍的博文:http://blog.csdn.net/drecik__/article/details/8186961

2012-11-17

Windows下的抓包程序简单实现

Windows下的抓包程序简单实现

2012-10-15

win7 bootsect.exe 32位

win7 bootsect.exe 32位

2012-04-14

空空如也

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

TA关注的人

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