自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

overflow

good good study

  • 博客(23)
  • 资源 (12)
  • 问答 (2)
  • 收藏
  • 关注

原创 C 结构体内存对齐原则

这个地方总会忘,自己写一遍就记住了关于结构体内存对齐(在没有#pragma pack宏的情况下)数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储)。结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素

2017-12-02 19:06:36 309

转载 线程池实现

thread.h#ifndef __THREAD_H #define __THREAD_H #include <vector> #include <string> #include <pthread.h> using namespace std; /** * 执行任务的类,设置任务数据并执行 */ class CTask

2017-11-28 14:23:56 294

原创 redis 扩容(非集群)

场景生产环境有1台redis,主备结构,因数据量增大,需要额外增加两台redis思路:由于使用的非redis集群,hash问题需要自己处理。可以在客户端与redis服务器之间增加一台twenproxy做代理,使用twenproxy的hash策略,可以避免客户端修改代码。 另外一个问题是原有redis的数据由于采用了新的hash策略,必然造成一部分数据miss。解决这个问题可以有两种思路: 1.

2017-11-15 12:40:48 496

转载 linux top 命令参数详解

简介top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU

2017-11-07 12:33:53 300

原创 shell 按行读取文件的问题

有个需求需要在shell中按行读取一个文件,文件类似于11111 222222 33334444 55556666 7777 8888 999使用for in 语句读的时候,发现$line中的数据是按空格来划分的,并不是完整的一样for line in $(<test.log)do echo $linedone读出来的结果: 11111 222222 3333

2017-11-03 12:31:59 494

原创 大根堆排序结果为升序

之前一直存在的误区,认为大根堆可以是用来降序排列的,因为大根堆总是可以先输出最大的元素堆顶(从这个角度来说,也确实可以完成降序排列~)。实际情况是对排序分为两部 1. 建堆 2. 堆排序 列如给个序列 6 5 3 2 4 1 7 建大根堆后得到的序列为 7 5 6 2 4 1 3第一次排序: 6 5 3 2 4 1 7 第二次排序: 5 4 3

2017-10-29 17:08:59 16340 8

原创 NULL ,nullptr,nullptr_t,0 区别

先看NULL的定义#ifndef __cplusplus#define NULL ((void *)0)#else /* C++ */#define NULL 0c语言中将NULL定义为空指针,而在c++中直接定义为0,这是因为C++是强类型的,void *是不能隐式转换成其他指针类型的。 既然NULL被定义成0,就存在二义性 c++ 中我们写这样一个函数 1test(classA a

2017-10-29 16:21:40 3700

原创 shell脚本查询mysql

接到统计需求,需要对一批对一批uid过滤,只保留10月1日之后注册的uid,用户注册时间可以从mysql里面拿,写了个shell脚本 ps:用户信息使用十库十表存储,像 12345这个uid存储在5这个库中的4这个表里面 #! /bin/bashhostip="107.0.0.1"port=6304username="net_budao_root"pwd="123456"database=

2017-10-20 16:12:55 1520

原创 孤儿进程与僵尸进程

概念孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程控制块PCB仍然保存在系统中,这种进程称之为僵尸进程。危害 如果父进程进程不调用

2017-10-18 21:31:42 204

原创 const 参数重载与const 成员函数重载

const 参数重载《C++ primer》一书中这样描述:“可基于函数的引用形参是指向 const 对象还是指向非 const 对象,实现函数重载。将引用形参定义为 const 来重载函数是合法的,因为编译器可以根据实参是否为 const 确定调用哪一个函数。”但是这一段描述并没有给出引用、指针和值传递前加const的实质区别是什么。在用非const的指针,引用和值均可转化为const的。

2017-10-18 20:59:01 1653

原创 内联函数与宏定义的区别

使用宏和内联函数都可以节省在函数调用方面所带来的时间和空间开销。二者都采用了空间换时间的方式,在其调用处进行展开: 不同之处在预编译时期,宏定义在调用处执行字符串的原样替换。在编译时期,内联函数在调用处展开,同时进行参数类型检查。内联函数首先是函数,可以像调用普通函数一样调用内联函数。而宏定义往往需要添加很多括号防止歧义,编写更加复杂(边际效应)宏定义是没有类型检查的,无论对还是错都是直接替

2017-10-18 20:22:53 346

转载 IO多路复用之select

1. 基本概念  IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: 1. 当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 2. 当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 3. 如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。

2017-10-15 23:17:26 277

转载 IO多路复用之epoll

1. 基本知识  epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次?不太理解这句话。2、epoll接口  epoll操作过程需要三个接口,分别如下:#include

2017-10-15 23:09:11 173

原创 TCP连接与断开

TCP 连接与断开1. TCP 状态LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:先前的连接中断请求的确认,等待的是fin的确认,通过发送第一个fin触发FIN-WAIT-2:等待另一方的终端请求

2017-10-15 22:17:23 1517

原创 16进制char 转换 string

网上查了下相关内容。乱七八糟,还不如自己写 string cTstr(char* c){ char h=c>>4; if(h>=0&&h9){ h=h+0x30; }else if(h>9&&h15){ h=h+'a'-10; }else{return "";}

2014-09-03 18:25:14 938

转载 GetWindowRect和GetClientRect

GetWindowRect和GetClientRect原文:http://blog.chinaunix.net/u/25372/showart_304363.htmlGetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。    GetClientRect取得窗口客户区(不包括非客户区)在客户

2014-01-11 13:16:55 535

转载 VMware安装失败 “Failed to create the requested registry key Key:installer Error:1021" .

问题描述:安装虚拟机VMWare Workstation7.1时出现failed to create the requested registry key key installer error 1021点击“确定”后退出 解决方法:在注册表(开始--运行--输入regedit)中找到HKEY_LOCAL_MACHINE ------------> SOFTWARE--------

2013-10-14 15:35:33 805

原创 sqlite数据库使用

使用.NET操作SQLLITE先下载ADO.NET2.0 Provider for SQLite。下载binaries zip版就可以了。下载完后解压缩,可以在bin目录下找到System.Data.SQLite.DLL。在vs2008中用Add Reference功能把System.Data.SQLite.DLL加到工程里就可以了。运行下面代码试试:string datasource =

2013-08-21 18:04:13 700

原创 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况

在app.config配置文件中添加新节点如果当程序在.NET4.0环境下要使用.NET2.0及.NET3.5的程序时就必须将useLegacyV2RuntimeActivationPolicy设置为true在使用sqlite时会遇到这个问题,原因是System.Data.Sqlite这个数据访问provider是针对.NET2.0环境开发(最新的版本是1.0.66.0,201

2013-08-21 17:56:46 1052

原创 委托实现窗口间同步传值

看到网上很多人问关于怎么实现串口间的同步传值,写一个简单的方法供大家参考子窗口:    public delegate void send(string str);//创建带参数委托        public event send sd;        public Form2()        {            InitializeComponent(); 

2013-08-09 14:30:57 637

转载 sql经典语句

转载自:http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html有时间在自己整理

2013-05-07 20:57:39 808

原创 sql多表查询语句的学习

经过几天的面试,发现公司最注重的是对数据库的熟练程度,小天不幸一次又一次的死在了数据库上,今天决定,恶补数据库。1.    [SQL语句] UNION [SQL语句]合并两个SQL语句中的结果集,去除重复。[SQL语句] UNION  ALL [SQL语句]合并两个SQL语句中的结果集,允许重复。注意:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似

2013-05-07 20:54:14 881

原创 全局键盘钩子与线程键盘钩子获取键码的不同方式

对于钩子函数hookproc(int nCode, int wParam, int lParam)参数的解码,可以得到按键值,钩子类型不同,获取键码的方式也不同。。1,若全局键盘钩子SetWindowsHookEx(13,hookproc, IntPtr.Zero,0);创建格式化类[StructLayout(LayoutKind.Sequential)]//格式化类的布局方式 p

2013-04-22 22:33:11 2338 4

L-System源码

基于MFC的L-System。所有参数可以自己设定。另外包含一个设计文档。

2014-05-22

NTFS数据运行的一种处理方案(源码)

NTFS中用的很经典的就是数据运行了。逻辑性很强的东西,用我的代码可以完美处理数据运行,并将得到的所有扇区存储在一个数组里

2013-12-08

图片隐藏文件源码

呕心沥血写了2天。写的很精简。有需要的童鞋拿去。

2013-11-17

图片中隐藏文件

在一张bmp图片中隐藏一个文件,隐藏后bmp图片没有什么变化,大小也不改变。隐藏文件的大小不超过原bmp文件大小的八分之一左右。 用于在bmp图片中隐藏一些不想被别人看到的机密文件。

2013-11-17

C#动态加载dll

C#动态加载dll文件是件很麻烦的事,在网上找的代码,做成了类文件,方便以后使用

2013-09-11

System.Data.SQLite.DLL

封装了用于sqlite数据库操作的一系列函数

2013-08-21

UDP广播发送与监听(源码只为初学者)

设置端口号与广播地址,不设置或输入非数字型,广播地址默认为255.255.255.255(全世界,不过路由器会拦截,也就是整个局域网内广播),端口号默认为0 我也是初学者,源码只为初学者。。。 程序稳定,也可以作为工具使用

2013-04-20

获取系统所有进程(源码只为初学者)

我也是出学者,本着初学者需要最简单的代码,用最简单的语句做了这个获取系统进程源码。 想对进程与线程详细信息处理的童鞋,可以下载我的资源:QQ进程与线程详细信息(源码只为初学者)

2013-04-20

获取qq进程的所有信息(源码只为初学者)

获取qq进程与线程的信息,只为初学者,我也是初学的,自己制作了这个小工具,方便初学者学习

2013-04-20

2013考研国家线监测器

一下午,累得不行。免费的奥,有关说明里面有

2013-03-25

实用的选择题自测工具,只为实用

对上次的选择题做了些实用的更新,对于下载了原版的童鞋可以联系我发给你。。 此软件为选择题考试系统,主要目的共同学习交流 账号密码存储在dl.txt的文件里,默认是admin,admin,可以进入后台自己修改 题库存储在sx.txt的文件里,每道题有6行,分别是答案,题干,还有四个选项A,B,C,D。。。 抽题时,软件会产生一些不重复的随机数字,然后按照数字抽取5道题目(第一次做软件。有点少,呵呵,仅供学习)。 交卷后,软件会打出相应的分数,做错的题目后面会有大红字写出正确答案。 试题添加部分分为两种: 一种是单个添加,这个不多说了,但要注意一点,就是,每一个空都要填。 另一种是批量导入,这个地方要注意,导入的必须是txt文件(其他的也导入不进去),文件中的题目一定要有固定的格式。分别是 答案 题干 A B C D

2012-04-09

选择题考试系统源码

软件说明: 此软件为选择题考试系统,主要目的共同学习交流 账号密码存储在dl.txt的文件里,默认是admin,admin,可以进入后台自己修改 题库存储在sx.txt的文件里,每道题有6行,分别是答案,题干,还有四个选项A,B,C,D。。。 抽题时,软件会产生一些不重复的随机数字,然后按照数字抽取5道题目(第一次做软件。有点少,呵呵,仅供学习)。 交卷后,软件会打出相应的分数,做错的题目后面会有大红字写出正确答案。 试题添加部分分为两种: 一种是单个添加,这个不多说了,但要注意一点,就是,每一个空都要填。 另一种是批量导入,这个地方要注意,导入的必须是txt文件(其他的也导入不进去),文件中的题目一定要有固定的格式。分别是 答案 题干 A B C D 还不清楚的可以打开sx.txt看看,格式是一样的

2012-01-13

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

TA关注的人

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