自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (2)
  • 收藏
  • 关注

原创 centos中设置redis开机启动

1、redis安装完成后会生成4个可执行文件:redis-server、redis-cli、redis-benchmark、redis-stat,他们的作用如下       redis-server:Redis服务器的daemon启动程序       redis-cli:Redis命令行操作工具       redis-benchmark:Redis性能测试工具,测试Redis在你的系

2013-07-04 11:09:12 2608

原创 服务器端WSAAsyncSelect模型编程

WSAAsyncSelect是服务器端的六种I/O模型之一,他的主要思想是运用了windows窗口的消息机制,用函数WSAAsyncSelect()将监听端口感兴趣的网络消息注册到窗口,然后在窗口的消息过程中处理,该模型只提供异步通知,并不提供异步数据传送,只适用于系统开销不大的情况。使用该模型编程,需要基于窗口,以下CreateServerWindow提供了创建窗口的过程。#includ

2013-05-12 10:49:20 1025

原创 基于TCP的简单socket通信

前两天开始翻看UNIX网络编程,看到了一个基于TCP的socket通信实例(客户端向服务器请求当前时间),于是自己在vs上实现了下,以加深对socket通信流程的了解,代码如下: 客户端#include #include #include #include #include "../../Server/Server/SocketUtil.h"#pragma co

2013-05-09 15:38:37 743

原创 用三重循环求一个字符串的最大回文串(连续重复出现的最长子串)

字符串的最大回文串是指在字符串中连续重复出现的最长子串,如"jkjkfgsfgsfgsf",回文串有"jk":2,"fgs":3,"gsf":3,"sfg":2。(格式为 子串:出现次数)。求回文串的基本思路是:从首字符开始取长度为2的子串"jk",然后取该子串后相邻的长度为2的子串"jk",两个子串相邻且相等,所以"jk"为该字符串的一个回文串,继续取之后的一个长度为2的子串"fg",与之前

2013-05-06 01:16:02 1040

原创 逆序存储文件(三)——文件内存映射

之前介绍的两种逆序存储文件的方法,由于性能问题,只适用于小文件的操作,如果源文件较大,几M,几百M,甚至几G,则需要使用文件内存映射的方式。我对内存映射的原理认识不深,也未做研究,我只知道,使用内存映射将文件映射到内存后,就可以直接通过操作映射的内存块来操作磁盘中的文件,避免了我们主动调用磁盘I/O(I/O过程被操作系统接管),从而提高了文件读写性能。        文件内存映射的过程是:创建

2013-05-01 20:21:54 968

原创 逆序存储文件(二)——使用c标准库函数fopen,fseek,fread,fwrite

使用c标准库函数实现小文件逆序存储逻辑是:1.用fopen函数成功打开源文件和目标文件,源文件用只读方式(r)打开,目标文件用追加写入(a)的方式打开;2.循环使用fseek定位文件指针(fopen的返回值),从SEEK_END(文件末尾)位置开始,每次多向前偏移一个字节,知道fseek返回一个非0值结束;(fseek能改变文件指针)3.每次定位成功后,读取一个字符(fread)到缓冲

2013-04-30 15:18:35 1708

原创 逆序存储小文件(一)——使用STL容器

将一个4M左右的文本文件内容逆序输出到另一个文本文件中,步骤如下:1.使用文件输入流以只读方式打开源文件,创建一个容器,使用copy函数将流内容顺序复制到容器中;2.创建一个文件输出流,制定输出目标,反向遍历容器,将容器内容写到流中。 代码如下:#include #include #include #include #include #include #

2013-04-30 10:48:06 785

原创 两种获取虚函数地址的方式

今天在运行一段代码时,发现运行结果与我预期的不一样,所以google了一把,这里对研究结果作下总结#pragma once#include using std::cout;using std::endl;class Base{public: virtual void f() { cout<<"Base f"<<endl; } virtual v

2013-04-30 00:07:03 3159

转载 C++ 随机数生成

标准库(被包含于中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。注一:个人理解,以上的描述存在问题,根据msdn的描述,rand返回的值区间为[0,RAND_MAX),而不是[seed, RAND_MAX),很简单的一个验证,使用time(NU

2013-04-25 17:47:44 635

原创 WaitForSingleObject等待一个mutex句柄时的返回值

今天遇到了用WaitForSingleObject去等待一个Mutex句柄,对他的两个返回值(WAIT_OBJECT_0和WAIT_ABANDONED)含义有点含糊,于是写了测试代码模拟了下 根据msdn上的解释WAIT_OBJECT_0:The state of the specified object is signaled.WAIT_ABANDONED:The specifi

2013-04-25 15:58:28 1539

原创 实现简单计数指针

今天看了zthread库中的计数指针,于是也参考着在vs2010上写了一个来巩固对计数指针的理解#pragma oncetemplateclass MyCountPtr{ //引用计数指针只要以下两个数据成员 //指向对象 TypeInstance* t_instance; //指向计数器,计数器默认为int类型 TypeCount* t_count;

2013-04-24 21:52:55 1148

原创 windows平台下编译zThread库

今天看到《c++编程思想》中并发一章,作者使用zThread这个开源库来讲解,于是我也下了个版本编译,并简单使用了下,以下是具体步骤: 一、创建工程      1.下载源码       由于官网http://zthread.sourceforge.net一直上不去,所以我从http://download.chinaunix.net/download.php?id=24079&Resou

2013-04-22 18:32:09 2062 2

原创 如何计算结构体大小和结构体中成员的内存偏移

结构体字节偏移两条准则:1、每个成员的偏移位置是自身类型大小的整数倍;2、结构体总大小是成员中最大类型大小的整数倍。 以下代码在32位机器xp系统下用vs2010测试 例如class test { char x1; char x2; short x3; float x4;};//大小为8Bx1偏移0,当前大小1;x2偏移为1的整数倍1,当

2013-04-19 21:03:53 880

原创 初识ANSI字符集和UNICODE字符集

通过了解char和wchar_t这两个类型的区别,我对ANSI字符集和UNICODE字符集有了些新的认识。       我最初认为以下代码(2)是通不过编译的,认为L'e'只能对宽字符类型赋值,因为L会告诉编译器后面跟着的字符或者字符串会用UNICODE编码存储,L'e'就被存储为两个字节0x0065,但事实不是这样,L'e'成功的赋值给了char变量c,只不过在赋值时高字节00被截断,就相当

2013-04-19 18:49:04 759

zthread项目在win7中用vs2010编译通过

用vs2010编译通过的zthread lib工程,编译得到的lib经过简单的测试,若有问题,可以自己修改代码编译

2013-12-22

zthread源码和posix pthread库的静态动态库以及头文件

资源中包含zthread库2.3.1版本源码和在windows平台上编译和使用需要的posix pthread库的lib,dll以及三个.h文件

2013-04-23

空空如也

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

TA关注的人

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