自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (5)
  • 收藏
  • 关注

原创 MySQL的用户权限设置问题

  在mysql中已经设置了mysql组和mysql用户。当使用MySQL的时候,发现使用这样的命令mysql -h 127.0.0.1 -u mysql -p 不能访问数据库root#mysql -h 127.0.0.1 -u mysql -pEnter password:******ERROR 1045: Access denied for user: mysql@127.0.0

2007-08-31 11:13:00 11549

原创 C/C++ 误区

C/C++ 误区:强制转换 malloc() 的返回值      首先要说的是,使用 malloc 函数,请包含 stdlib.h(C++ 中是 cstdlib),而不是 malloc.h 。因为 malloc.h 从来没有在 C 或者 C++ 标准中出现过!因此并非所有编译器都有 malloc.h 这个头文件。但是所有的 C 编译器都应该有 stdlib.h 这个头文件。    在 C++ 中,

2007-08-29 23:38:00 1621

原创 grep的功能

grep的功能grep从一个或多个文本文件中查找符合指定范本(正则表达式)的行,并把查找结果输出到指定设备(默认到屏幕)。语法:/usr/bin/grep [选项] [文件1 ...]范本是一个单独的词或者是一个用引号括起来的字符串。如果范本包含空格,则范本要用引号括起来。grep默认下把结果输出到屏幕但是并不影响或改变任何被查找的目标文件。一些特殊字符($, *, [, ^

2007-08-29 13:37:00 3042

原创 ACE_Singleton与ACE_Unmanaged_Singleton

            近日使用ACE开发了客户端软件,测试出现一个重入的BUG,客户端注销后,再次进入会导致状态错误。经过跟踪分析发现,是使用ACE_Singleton引起的。          因为ACE_Singleton使用非常便利,在程序里面使用了多个,但因为它是系统管理的,在注销后,这个对象无法释放,导致状态全部错误。改成ACE_Unmanaged_Singleton,自己管理

2007-08-28 10:43:00 4192

原创 makefile的使用隐含规则

重新创建目标文件的一些标准方法是经常使用的。例如,一个传统的创建OBJ文件的方法是使用C编译器,如cc,编译C语言源程序。隐含规则能够告诉make怎样使用传统的技术完成任务,这样,当您使用它们时,您就不必详细指定它们。例如,有一条编译C语言源程序的隐含规则,文件名决定运行哪些隐含规则;另如,编译C语言程序一般是使用‘.c’文件,产生‘.o’文件。因此, make据此和文件名的后缀就可以决定使用编译

2007-08-26 17:23:00 2781

转载 小谈Online-game服务器端设计(3,4)

小谈Online-game服务器端设计(3)   下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先,我们需要知道什么是NPC,NPC需要做什么。NPC的全称是

2007-08-24 17:01:00 1732

转载 小谈Online-game服务器端设计(1、2)

小谈Online-game服务器端设计(1、2)   谈这个话题之前,首先要让大家知道,什么是服务器。在网络游戏中,服务器所扮演的角色是同步,广播和服务器主动的一些行为,比如说天气,NPC AI之类的,之所以现在的很多

2007-08-24 16:59:00 1562

原创 google/yahoo部分员工的blogger

  Alma Whitten: 负责综合计算机安全及可用性工作,及计算机安全用户中心  Ben Goodger: Firefox首席工程师  Biz Stone: Blogger 资深专家(Blogger)  Bo Cowgill  Bret Taylor   Chris DiBona: 开放源码程序经理   Colin Smith   Darin Fisher: Firefox首席工程师  

2007-08-24 16:52:00 1874

转载 网络游戏中的数据包设计与定义(初论)

   接触了一段时间的网游封包设计,有了一些初步的思路,想借这篇文章总结一下,同时也作个记录,以利于以后更新自己的思路。  网络游戏的技术研发,分为三个主要的方面:服务器设计,客户端设计,数据库设计。而在服务器和客户端之间实现游戏逻辑的中介则是游戏数据包,服务器和客户端通过交换游戏数据包并根据分析得到的数据包来驱动游戏逻辑。网络游戏的实质是互动,而互动的控制则由服务器和客户端协同完成,协同

2007-08-24 16:50:00 4154

转载 ACE笔记(1)-ACE文件操作

        ACE里的文件操作与平常的Win32里面的文件操作有所不同,这是因为ACE是为网络开发而设计的,里面普遍都遵循了Client/Server模式,这样在操作文件时,ACE把文件看做是一个Socket服务器,而进行文件操作的类(ACE_FILE_IO)被看做是一个Socket Client。        有了上面的认识,使用ACE的文件操作就容易理解了:        调

2007-08-23 10:44:00 7978 1

转载 linux下ACE的安装

作者:张弛(zhangchi@bnchina.com)本文详细描述了在Linux操作系统上安装和配置“自适应通信环境(ACE)”的过程和注意事项。文中的描述基于RedHat Linux 9操作系统和ACE 5.4版准备工作:1.确保你的Linux操作系统的开发环境(gcc、make……)是完整且可用的。2.在安装ACE的过程中,可能需要root权限,因此确保你拥有root帐户的密码。3

2007-08-21 11:46:00 3773

原创 sscanf函数的高级用法

大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。1.         常见用法。 char str[512] = {0};

2007-08-20 14:15:00 3006 1

转载 关于ACE_InputCDR和ACE_OutputCDR读写数据时的经验

   

2007-08-20 10:48:00 2099

原创 35岁前成功的12条黄金法则

第一章:一个目标    一艘没有航行目标的船,任何方向的风都是逆风    1、你为什么是穷人,第一点就是你没有立下成为富人的目标    2、你的人生核心目标是什么?    杰出人士与平庸之辈的根本差别并不是天赋、机遇,而在于有无目标。    3、起跑领先一步,人生领先一大步:成功从选定目标开始    4、贾金斯式的人永远不会成功    为什么大多数人没有成功?真正能完成自己计划的人只有5%,大多数

2007-08-19 22:27:00 1440

原创 assert的多种用法

1.基本用法void VectorNormalize(Vec* src, Vec* dat){ float length; assert(src!=0);//检查src向量必须不为空 assert(dst!=0);//检查dst向量必须不为空  .................. ..................}2.让assert嵌入更多的信息void Vector

2007-08-19 22:06:00 1775

转载 汇编指令集

1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出

2007-08-18 23:11:00 1090

转载 深度探索C++对象模型》读书笔记(3)

***纯虚拟函数***在设计抽象基类时,需要注意以下几点:(1)不要将destructor声明为pure virtual function;如果将destructor声明为pure virtual function,则设计者一定得定义它。因为每一个derived class destructor会被编译器加以扩展,以静态调用得方式调用其“每一个virtual base class”以及“上一层

2007-08-18 14:54:00 1471

转载 深度探索C++对象模型》读书笔记(2)

***class大小的计算所引发的思考***在visual C++ 6.0中测试如下代码:#include "iostream"using namespace std;class X ...{};class Y : public virtual X ...{};class Z : public virtual X ...{};class A : public Y,public Z ..

2007-08-18 14:52:00 1725

转载 深度探索C++对象模型》读书笔记(1)

***C++对象模型***在C++中,有两种class data members:static和nonstatic,以及三种class member functions:static、nonstatic和virtual。已知下面这个class Point声明:class Point ...{public:Point(float xval);virtual ~Point();float x(

2007-08-18 14:50:00 1517

转载 《C专家编程》读书笔记(1)

function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyit=window.open(http://www.365key.com/storeit.

2007-08-18 14:47:00 1218

转载 《C专家编程》读书笔记(2)

function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyit=window.open(http://www.365key.com/storeit.

2007-08-18 14:47:00 1382

原创 ACE_Message_Block小知识

ACE_Message_Block的分配器的使用方法 ACE_Messae_Block中结合了ACE_Allocator,使ACE_Message_Block更加灵活,本文中将简单介绍ACE_Message_Block和ACE_Allocator的使用方法,及注意事项。  首先我们看看

2007-08-18 14:42:00 3863

转载 学习《深入理解C++对象模型》小结

Chapter 2 构造函数语义学习小结1、 C++编译器何时会为C++中的类生成缺省的构造函数(Default constructor)?如果程序员没有定义构造函数,编译器会在下面四种情况为类生成缺省的构造函数:?        类中聚合的元素有构造函数(可以是程序员自定义的或者编译器生成的);?  

2007-08-18 14:38:00 2187

转载 数据接收中粘包及半包的处理

     在使用TCP协议的网络应用中,不可避免需要处理的一个问题就是半包和粘包的情况。    一种做法是在接收端设一个比较大的缓冲区,先将收到的数据包都放到缓冲区中,然后从该缓冲区中选取完整的数据包出来。该缓冲区的实现可以使用环形缓冲区进行优化,避免频繁的数据移动。使用该方法的一个描述见 http://www.vckbase.com/document/viewdoc/?id=1203

2007-08-17 20:06:00 2145

转载 ACE基础架构

  1. OS适配层OS适配层是位于本地OS API和ACE之间的“瘦”代码层,它使ACE的较高层与平台依赖性屏蔽开来,从而使得通过ACE编写的代码保持了相对的平台无关性。只需要极少的努力,开发者就可以将ACE应用移植到任何平台上。OS适配层也是ACE框架之所以可用于如此多的平台的原因所在。目前ACE适用的OS平台包括:实时OS(VxWorks、Chorus、LynxOS和pSoS)、大多数版

2007-08-16 14:12:00 3478

原创 c++中的explicit关键字

 c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class MyClass{public:MyClass( int num );}....MyCla

2007-08-15 21:30:00 1064

转载 和同事相处的30个原则(转载)

大家看看,说不定有几条有用。         1.无论发生什么事情,都要首先想到自己是不是做错了。如果自己没错(那是不可能的),那么就站在对方的角度,体验一下对方的感觉。    2.让自己去适应环境,因为环境永远不会来适应你。即使这是一个非常非常痛苦的过程。    3.大方一点。不会大方就学大方一点。如果大方真的会让你很心疼,那就装大方一点。    4.低调一点,低调一点,再低调一点(要比临时

2007-08-14 23:35:00 1144

转载 C++对象布局及多态实现的探索(六)

后记  结合前面的讨论,我们可以看到,只要牵涉到了虚继承,在访问父类的成员变量时生成的代码相当的低效,需要通过很多间接的计算来定位成员变量的地址。在指针类型转换,动态转型,及虚函数调用时,也需要生成很多额外的代码来调整this指针。象前一篇中对C170对象的obj.foo()和obj.f170()两次调用,传递到两个函数中的this指针居然是不一样的。  前面我们碰到过的怪异行为还有很多,比如偏移

2007-08-14 23:15:00 1159 1

转载 C++对象布局及多态实现的探索(五)

菱形结构的虚继承  这次我们看看菱形结构的虚继承。虚继承的引入本就是为了解决复杂结构的继承体系问题。上一篇我们在讨论虚继承时用的是一个简单的继承结构,只是为了打个铺垫。  我们先看看这几个类,这是一个典型的菱形继承结构。C100和C101通过虚继承共享同一个父类C041。C110则从C100和C101多重继承而来。struct C041{C041() : c_(0x01) {}virtual vo

2007-08-14 23:13:00 1164

转载 C++对象布局及多态实现的探索(四)

构造函数中的虚成员函数调用  在构造函数中调用虚成员函数,虽然这是个不很常用的技术,但研究一下可以加深对虚函数机制及对象构造过程的理解。这个问题也和一般直观上的认识有所差异。先看看下面的两个类定义。struct C180{C180() { foo(); this->foo();}virtual foo() {cout }};struct C190 : public C180{C190() {}vi

2007-08-14 23:12:00 1101

转载 C++对象布局及多态实现的探索(三)

  普通成员函数的调用  从这部分开始我们除了利用内存的信息打印来进行探索外,更多的会通过跟踪和观察编译器产生的汇编代码来理解编译器对这些语言特性的实现方式。汇编方面知识的讨论超出了本文的范围,我只对和我们讨论相关的汇编代码进行解析。理解本文要讨论的知识并不需要有很完整的汇编知识,但必须了解起码的概念。  下面我们看看引入虚继承后的影响。为了有所对比我们首先看看普通成员函数的调用情况。  执行如下

2007-08-14 23:11:00 1045

转载 C++对象布局及多态实现的探索(二)

带虚函数的类的对象布局(2)  接下来我们看看多重继承。定义两个类,各含一个虚函数,及一个数据成员。再从这两个类派生一个空子类。struct C041{    C041() : c_(0x01) {}    virtual void foo() { c_ = 0x02; }    char c_;};struct C042{    C042() : c_(0x02) {}    virtual v

2007-08-14 23:07:00 1139

转载 C++对象布局及多态实现的探索(一)

前言  本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等。  写这篇文章源于我在论坛上看到的一个贴子。有人问VC使用了哪种方式来实现虚继承。当时我写了一点代码想验证一下,结果发现情况比我想象的要复杂。所以我就干脆认真把相关的问题都过了一遍,并记录成本文。  我对于C++对象模型的知识主要来自于Lippman的书《Inside t

2007-08-14 23:05:00 1267

转载 C++对象的内存布局(下)

1.       仅有一个虚函数的类 class C010{       virtual void foo(){};}; // sizeof = 4 输出结果为:The size of C010 is 4The detail of C010 is 50 d0 46 00 当一个类中有虚函数时,编译器会为该类生成一个虚函数表,并在它的每一个对象中插入一个指

2007-08-14 17:20:00 1032

转载 C++对象的内存布局(上)

本文档节选并整理自潘凯的《C++对象布局及多态实现的探索》系列。原文请参见 http://lunatic.bokee.com/1.       空类: class C000{}; // sizeof = 1它的大小为1字节,这是一个占位符,我们可以看到它的值是0xcc。在debug模式下,这表示是由编译器插入的调试代码所初始化的内存。在release模式下可能是个随机值

2007-08-14 17:18:00 1140

转载 深入研究 STL Deque 容器

An In-Depth Study of the STL Deque Container(By Nitron)翻译 masterlee本文档深入分析了std::deque,并提供了一个指导思想:当考虑到内存分配和执行性能的时候,使用std::deque要比std::vector好。 介绍本文深入地研究了std::deque 容器。本文将讨论在一些情况下使用deq

2007-08-14 13:53:00 2062

原创 linux kernel的一些写法

  #include       #include       #include     struct   tt{             int   num;             char   *str;     };     struct   cc{             int   i;             char   cstr[0];     };     main(){

2007-08-14 13:44:00 1105

原创 MYSQL出错代码列表

MYSQL出错代码列表1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库文件失败1012:不能读取系统表中的记录1020:记录已被其他用户修改1021:硬盘剩余空间不足,请加大硬盘可用空间1022:关键字重复

2007-08-14 12:39:00 906

转载 开源的数据库连接池 SQL Relay 介绍

 author: heiyelurenblog: http://blog.csdn.net/heiyeshuwu概述:SQL Relay是个功能强大并且非常容易使用的持久数据库连接池系统,能够运行在Unix/Linux系统下,能够支持大部分主流的数据库系统和大部分的编程语言,有效的减轻服务器的负载和移植问题,是很多Web应用数据库连接池的一个选择。SQL Relay 是适合于U

2007-08-14 10:20:00 1383

转载 一些使用Vim的小技巧

太简单的就不说了,随便找手册可以找到,这里就说说一些小技巧吧,也是最近使用给逼出来的学习,呵呵,不过挺方便的。1. 全局替换(1) v + G + $ 选定全部,然后输入 :s/原始字符串/目标字符串/(2) :%s/原始字符串/目标字符串/2. 清除页面中所有行尾的空白符::%s//s/+$//3. 清除所有空白:%s//(/s*/n/)/+//r/4. 去掉所有的//注释:

2007-08-14 10:14:00 997

变迁和机遇:2012年的中国移动互联网

李开复关于移动互联网的总结ppt:变迁和机遇:2012年的中国移动互联网

2012-06-26

memcache1.2.8源码分析(源码有注释+ppt说明)

memcache1.2.8源码分析 压缩包里有带注释的1.2.8的源码 有分析的ppt 有整理的网络上对memcache分析比较好的word文档

2009-06-20

effective c++和more effective c++

电子版的effective c++ 和more effective c++c++四书五经中介绍的经典书籍

2007-09-11

空空如也

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

TA关注的人

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