自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (16)
  • 收藏
  • 关注

原创 编译时遇到的问题记录

BOOST_BUILD_PATH指定错误 BOOST_BUILD_PATH为Boost.Build根目录的绝对路径,bjam运行是会查找该绝对路径下的一些文件。在下载得到源代码解压之后,源码目录 ROOT/boost_1_55_0/,构建Boost.Build,进入ROOT/boost_1_55_0/,构建Boost.Build,进入ROOT/boost_1_55_0/tools/build/v2

2015-06-18 12:49:43 12202

原创 boost学习笔录-III

如何生成静态库、动态库?如何使用静态库、动态库?lib bar : bar.cpp : <link>static ;//指定静态库lib foo : foo.cpp ;//默认生成动态库use-project /library-example/foo : . ;//id替代exe app : app.cpp /library-example/foo//bar/<link>static .//f

2015-06-18 11:11:30 963

原创 boost学习笔录-II

如何一次构建debug和release版本? bjam默认构建debug版本,当通过下面的命令一次性的构建debug和release版本bjam debug release结果如下:|-- config.log`-- gcc-4.7 |-- debug | |-- hello | `-- hello.o `-- release

2015-06-17 14:26:08 866

原创 boost学习笔录-I

写了一个脚本,用来测试jam,结果遇到了问题,可能也有其他同学在第一次使用bjam时也碰到了这样的问题,所以,我就记录了下来,//hello.cppint main(){ return 0;}最简单的jam文件exe hello : hello.cpp ;运行bjam的时候,出现错误:config-cache.jam: No such file or directory/h

2015-06-16 22:22:27 554

原创 服务器结构整理一些思考(1)

协议路由的设定每个玩家在引擎的实体的驱动下,每个实体下有包含了玩家的各个属性,有的属性自成系统。

2015-06-16 21:55:55 610

原创 CPP学习笔记-4

static两种不同的职责,一是其持久存储的,二是访问性受到局限,一个是在哪里,另一个是谁能看到你,在C中基本是这样的。static in C++static 本地变量是持久存储的,但是,只有在本地域的范围内才能访问,下面只能在f()中访问static本地变量xint f(){ static int x; x++; return x;}int main(

2015-05-09 16:24:15 432

原创 CPP学习笔记-3

拷贝用一个存在的object创建一个新的object 下面程序中两次调用拷贝构造#include <iostream>#include <string>using namespace std;static int objectCount = 0;class HowMany{ public: HowMany(){ objectCount++;

2015-05-09 09:36:42 494

翻译 如何写Asterisk模块(3)

在该部分你将看到如何实现Asterisk CLI命令。对Asterisk来说,CLI是尤为重要的,无论是在进行配置、显示状态以及调试都会用到。该部分将对如何写Asterisk模块(2)的基础上进行添加代码。       首先我们需要包含定义CLI命令接口的头文件。       #include “asterisk/cli.h”       我们要实现的命令是echo,用于回显,不过

2015-05-08 23:44:57 517

原创 CPP学习笔记-2

引用作为class成员-reference作为类成员变量,可以没有初始值 -reference作为类成员变量,必须在构造函数列表中初始化,如果是在构造函数中赋值,那么,将发生reference未初始化错误,正确代码如下:class X{ public: int& m_y; X(int &a);};X::X(int &a):m_y(a){}

2015-05-08 23:21:30 551

原创 CPP学习笔记-1

前端时间使用erlang,这段时间使用python,为了项目快速开发,都和脚本干上了,底层部分用C++,比较稳定,基本上不用动。之前在通信行业一直用CPP,现在手生疏了很多,感觉基础的东西还是不能丢,CPP是我的本,不能忘本啊。网上一些视频学习的还是不错的,帮组自己复习,下载了翁恺老师的培训视频课程,深入浅出,又有实践手操。个人感觉当学某个东西的时候,只是从脑中过一遍,效果来的差,不如将所想的写下

2015-05-06 22:09:42 798

原创 关于移动客户端token过期问题

* 移动客户端游戏登陆SDK时,向渠道认证完成之后,拿到认证信息,其中之一为token或称之为sessionid;* token有一定的时效,过期之后需要重新向登陆认证,拿到新的token;* 移动客户端向游戏服务器登陆时,需要提供包含token的认证,游戏服务器需要向渠道认证包含token的认证信息,如果渠道返回有效,则认为移动客户端为合法;* 游戏过程中经常会断线重连,

2015-01-31 13:30:02 18082

转载 Linux服务器性能评估

Linux服务器性能评估    一、影响Linux服务器性能的因素     1. 操作系统级CPU内存磁盘I/O带宽网络I/O带宽    2. 程序应用级    二、系统性能评估标准     影响性能因素影响性能因素评判标准好坏糟糕CPUuser% + sys%user% + sys%= 8

2013-08-11 00:33:54 795

转载 程序员不爱读书,但这很不明智——想看就看《高效能程序员的修炼》

英文原文:http://www.codinghorror.com/blog/2008/04/programmers-dont-read-books----but-you-should.html作者:Jeff AtwoodCoding Horror精华文章现已收入新书《高效能程序员的修炼》,各大书店有售!StackOverflow.com的主旋律之一,就是软件开发者不再照着书本学习编

2013-07-22 20:16:49 1061

转载 关于 Cookie-free Domains(为什么将静态图片,js,css存放到单独的域名?)

本文主要描述使用裸域名做网站主域名时,如何用子域名做 cookie-free domains。看站点优化的文章,很多建议将站点的静态文件(如图片、js、css 等)放在一个专门的域名下访问,由于该域名与主站域名不同,所以浏览器就不会把主域名下的 Cookie 传给该域,减少了网络开销,一定程度提高了页面加载速度,特别是细碎静态文件特别多的情况下效果显著。大概这个域就叫着 cookie-fr

2013-07-16 14:18:33 13371

翻译 Simple-One-For-One Supervisors

当一个监控进程(supervisor)将对其子进程的重启策略指定为simple_one_for_one的时候,实际上所有子进程是一样的。simple_one_for_one是对one_for_one的简化,one_for_one的意思是监控进程对子进程终止的重启策略为直接重启子进程,而且不影响其他子进程。指定为simple_one_for_one策略的子进程都是相同的,而且可以动态增加。这一点有些

2013-07-11 22:22:04 1591

转载 名词解释“缓存穿透”和“缓存雪崩”

1. 缓存穿透:查询一个必然不存在的数据。比如文章表,查询一个不存在的id,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成影响。解决办法:对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。2.缓存失效:如果缓存集中在一段时间内失效,DB的压力凸显。这个没有完美解决办法,但可以分析用户行为,尽量让失效时间点均匀分布。当发生大量的缓存穿透,例如

2013-07-03 14:40:51 1760

转载 Erlang并发机制 – 消息传递

Erlang系统中,进程之间的通信是通过消息传递来完成的。消息使用Pid ! Message的形式发送,通过receive语句获取。每个Erlang进程都有用来存储传入消息的信箱。当一个消息发送的时候,它会从发送进程中拷贝到接收进程的信箱,并以它们到达的时间次序存储。消息的传递是异步的,一个发送进程不会在发送消息后被暂停。          上面提到发送消息时,会在两个进程之间存在消息复制

2013-06-23 19:34:39 2378

转载 InnoDB和MyISAM区别总结

InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。MyIASM是IASM表的新版本,有如下扩展:·二进

2013-06-23 16:38:12 592

原创 一些读书笔记(4)

1. UDP是面向无连接的,那么,我为什么要在它的socket上建立连接呢?UDP调用connect会有三次捂手过程吗?UDP调用sendto后,返回成功,并没有意味着数据发送到对端,而是仅仅表示接口输出队列具有存放sendto导致的数据包的空间,即使不可达对端。不可达到对端的ICMP错误,并不是sendto返回,而是为一个异步错误。为了解决这个问题,解决的办法是,只有在一个已经connect的U

2013-06-17 23:23:13 734

转载 ps查看进程的stat状态

These are indeed the process states. Processes states that ps indicate are:D Uninterruptible sleep (usually IO)R Running or runnable (on run queue)S Interruptible sleep (waiting for an event to co

2013-06-17 14:18:26 1560

原创 一些读书随笔(2)

1. 多个人做一件事情的时候,可能需要同步。如果不考虑执行顺序的情况下,每次得到的结果一样的,那么无需同步,但是,如果按照不同的执行顺序,得到不同的结果,而且其中只有部分结果是正确的,那么需要同步。如食堂排队,打饭员每次只能为一个人打饭打菜,如果一次为多个人打饭打菜可能会乱,这是不希望看到的,所以同步的办法是排队。从程序的角度分析,打饭员是临界资源,每次只能为一个人服务。在多线程环境下,用互斥锁实

2013-06-15 15:54:03 580

原创 一些读书随笔(1)

1. 看了进程之间通信,想消息队列与共享内存区别在哪里?因解决什么问题而共同需要他们,而不能合并为一,因之前缺少这方面的经验,问的问题可能比较简单?但不妨碍对于问题入口的思考。他们都可以用于进程之间通信,但是我要区别我读到了主要表现在这几个方面:a. 效率,共享内存读写效率要高于消息队列,共享内存主要是节省来内存的数据交换,减少通过内核传递数据的次数。b. 同步,消息队列具有固有的同步开销,共享内

2013-06-15 09:19:55 758

原创 一些复习笔记

1. sigsetjmp,siglongjmp出现是因为setjmp,longjmp对信号的支持不明确。当进程捕捉到一个信号的时候,进入信号处理程序,那么这个时候如果再次发生这个信号,那么该信号将会自动加到信号屏蔽字中。这样处理的原因是,阻止了后来产生的信号,中断该信号的处理程序。那么这个时候,如果longjmp跳出来信号处理程序,那么进程的信号屏蔽字将会发生什么呢?书中并未给出答案,而且说明每个

2013-06-14 16:49:37 722

原创 设置用户ID的程序调用system危险

system函数实现调用了fork, exec和waitpid。如果调用system的程序设置了用户ID,那么在fork,exec后的进程,保存了父进程的权限。当一个进程执行某个程序时,如果程序设置来用户ID,那么进程的有效用户ID将被设置为程序文件的实际用户ID,那么进程将拥有该文件拥有者的权限。这个权限在调用system后,被子进程继承来下来。例如:systest.cint main(

2013-06-11 20:37:25 1110

原创 几个容易混淆的重定向

进程预定义了三个文件描述符,分别是STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO。分别是标准输入,标准输出,标准错误输出。例如:$cat file1  默认输出是标准输出$tee     默认从标准输入读入$noexistcommand现在我们不想对上面三个输入输出走默认的途径,例如我要输出到文件中去;我要从文件中读取,而不是标准输入;

2013-06-10 21:53:46 789

转载 Linux重定向

1. 什么是标准文件    shell为每个命令打开三个文件(流),用于             读取输入——标准输入——键盘             输出结果——标准输出——显示屏(控制台)             输出错误消息——标准错误——显示屏(控制台)    当shell发现命令行中存在特殊字符(,|)时,shell就把流从它的默认设备上断开,连接到磁盘文件或另一

2013-06-10 17:30:50 847

原创 文件共享

书中提到内核用三种结构描述打开的文件,一是打开的文件描述符表,二是文件表,三是v节点。三者之间的关系具体见书中描述,他们三者通过指针相连接。1. 同个文件打开多次:open     每打开一次生成新的文件fd和文件表,因具有不同的文件表,文件状态和偏移是分开的。对于下面情况,第二次写入将对第一次写入产生影响。main(){ int fd1, fd2; fd1 = open("f

2013-06-10 17:00:07 844

转载 Linux多线程,线程的分离与结合

2)线程的分离与结合    在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线

2013-06-03 16:13:52 681

原创 刚刚才找回这个账号

自从CSDN账号被盗后,这个号一直都没有上了,刚刚才申诉回来,表示庆贺!!

2013-03-15 14:12:13 610

翻译 Erlang中的错误处理

1.定义2.当进程终止的时候退出信号被送出3.进程退出信号通过链接(进程之间的关系)传播4.进程能够捕捉退出信号5.复杂的退出信号传播6.通过分层构建健壮系统7.用于信号处理的基本概念8.构建一个健壮的服务器9.带有错误恢复的分配器10.分配器

2011-10-17 19:24:34 894

翻译 Erlang中的并行编程

Erlang中的并行编程:定义:Process :并发执行的活动的个体,是个完整的虚拟机,系统当中可以同时存在多个并发的进程。Message:进程之间通信的方法。Timeout:用于等待指定一段时间的,然后决定完成某个动作的机制。Registered Proc

2011-10-13 18:45:56 1167 1

原创 需要体验的游戏知识

1. 现在做网页游戏如何“糅合”,纵观游戏的发展,任何一款新的游戏的出现,都有糅合的思想。2. 游戏如何能给玩家体验简单又不简单?3. 网页游戏的过去“简单、粗暴、留下买路钱”。4. 回合制游戏和即时游戏本质的区别在哪里?5. 永远把不丢用户作为信条。

2011-10-13 09:33:24 732

原创 erlang中pg2模块使用

pg2这个模块实现了进程组的功能。这个模块之前有个模块为pg,pg模块的进行组中消息将被发送到组内的每个进程,但是pg2却不同,它可以选择性地将消息发送给单个、某些或全部组内成员。通过进程组的名称可以访问组内的进程,例如进程组的名称为foobar,而且有一系列进程位于组内,可能这

2011-10-13 09:22:10 4348

原创 Magnus Ahltorp的Mysql Driver

Magnus Ahltorp编写了Erlang访问Mysql数据库的Driver,其中我分析下存在以下的问题: 1. 数据库连接池选择算法使用循环,无加锁,那么连接池中一个连接可以被多个进程同时访问,这种情况下对处理事务是不可取的,事务的回滚可能导致其它进程操作数据的不一致。

2011-09-08 11:52:53 1067

原创 pic test

2011-07-14 23:57:29 515

转载 GDT详解

<br /><br />在Protected Mode下,一个重要的必不可少的数据结构就是GDT(GlobalDescriptor Table)。  <br />为什么要有GDT?我们首先考虑一下在Real Mode下的编程模型:  <br />在Real Mode下,我们对一个内存地址的访问是通过Segment:Offset的方式来进行的,其中Segment是一个段的Base Address,一个Segment的最大长度是64 KB,这是16-bit系统所能表示的最大长度。而Offset则是相对于此S

2011-03-26 10:11:00 870

转载 操作系统启动过程——硬件自检+系统引导+系统加载+系统登录

<br /><br />电脑及操作系统的启动过程<br />从按下机箱电源键开始,直到用户进入操作系统,操作系统正常启动,整个过程可分为以下几个部分。<br /><br /><br />1. 预引导(Pre-Boot)阶段<br />2. 引导阶段 <br />3. 加载内核阶段 <br />4. 初始化内核阶段 <br />5. 用户登录阶段<br />一、<br />QUOTE:<br />预引导阶段<br />  首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIO

2011-03-17 13:57:00 4367

原创 I/O复用简述

<br />     当应用程序打开文件成功时,内核向应用程序返回一个fd,称之为文件描述符,那么应用程序通过文件描述符通过内核来访问这个文件,对文件进行I/O操作。那么有种场景是一个进程需要同时处理多个文件描述符,每个文件描述符对应一个I/O处理,那么进行需要知道那个I/O是否满足条件,或称之为准备好,例如某个fd已经准备准备好被读,某个fd已经准备好接收写入。没有IO复用之前,进程会堵塞在单个I/O操作上,但是有了I/O复用之后,通过select调用监听多个文件描述符,当前其中一个或多个文件描述符对应的

2011-03-08 09:45:00 661

转载 C/C++程序内存中数据存储区分类

<br />C/C++中,内存中数据存储分成4个区,分别是堆、栈、全局/静态存储区和常量存储区。<br />      栈(stack),就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。<br />      堆(heap),一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。<br />      全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的(DATA段)和未初始化的(BSS段)

2010-11-01 09:00:00 962

转载 Asterisk Originate 内部执行流程

<br />来自:http://blog.csdn.net/austingao/archive/2010/07/29/5774635.aspx

2010-10-27 19:40:00 873

mysql操作手册

MYSQL查询手册,开发时的手边书,MYSQL查询手册,开发时的手边书,

2011-10-20

Erlang常用工具介绍

对Erlang的一些常用的开发或调试工具进行了介绍

2011-08-13

Erlang入门手册.

这是一个入门指导教你开始使用Erlang。这里所说的每一句都是准确的,但仍是真实的一 小部分。比如,我将只会告诉你最简单的语法,而不是所有详细的结构原理。有很多极其简 单的东西我会写上*manual*,这就表示这里有很多信息,你可以在Erlang相关的书中找 到或是在<Erlang参考手册>中找得到。

2011-08-13

Erlang程序设计中文版

Erlang程序设计中文版,由Erlang语言设计者写的书。

2011-08-13

内核技术Linux内核裁剪的具体步骤

内核技术Linux内核裁剪的具体步骤内核技术Linux内核裁剪的具体步骤

2011-05-26

C语言标准库手册说明

C语言标准库手册,包含c语言和C++语言中使用的头文件函数使用说明

2011-05-26

程序员面试宝典(面试必备)

程序员面试宝典是程序员找工作必备的一本书。

2008-11-14

ibm linux资料

介绍ibm linux 的一些相关资料,内容比较丰富。

2008-11-08

非常好的BASH脚本编写教程

这里有个老American写的 BASH脚本编写教程,非常不错,至少没接触过BASH的也能看懂!

2008-10-28

linux设备驱动(第三版)

介绍linux驱动编程的入门的教程,内容详实,实例丰富。

2008-10-28

oracle安装ppt

对oracle进行概述,以及安装步骤,以ppt播放。

2008-10-22

跟我一起写Makefile

教你如何写一个Makefile,一步一步的循序渐进的方式。

2008-10-21

高等数学(同济5版)

这是同济大学版高等数学第五版,包括上下册,习题答案。

2008-10-21

TCP/IP详解(第一卷)

该是详细介绍TCP,IP协议的经典之作,也是一本大师的经典之作!

2008-10-15

snort网络入侵检测系统

snort是一种强大的入侵检测系统(IDS),而且是开源的,任何开发人员都可以在修改起代码。

2008-10-09

空空如也

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

TA关注的人

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