Sailor++

导航

 

2013年11月2日

摘要: 转自 http://blog.sina.com.cn/mpl398235717@echo offecho ***********************************************************echo * *echo * *echo ***********************************************************:start::启动过程,切换目录:set pwd=%cd%:cd %1echo 工作目录是:& chdir:input::获取输入,根据输入进行处理set source=:set /p source=确定要 阅读全文
posted @ 2013-11-02 13:42 SailorNet 阅读(211) 评论(0) 推荐(0) 编辑
 

2013年10月28日

摘要: 1.首先最重要的当属网络处理的部分,用一些处理库像libevent, 或者用底层直接处理(windows iocp和Linux epoll)2.定时处理器,好多需要准确定时处理的逻辑需要定时处理器。用Socket的超时或者自己写Timer3.数据库处理MySQl的连接API4.xml读取,tinyxml libxml等等5.LuaWapper类调用脚本,个人认为用处不大6.关于多线程,注意死锁,和减少锁竞争。和 libevent 是否是线程安全模式。7.关于消息解析和回调,消息结构体指针强制转换或者一个一个读。傻一点的Swith结构,或者用map以命令号为键值存函数指针。8.关于日志,输出到终 阅读全文
posted @ 2013-10-28 16:37 SailorNet 阅读(123) 评论(0) 推荐(0) 编辑
 

2013年10月23日

摘要: 系统过一会直接出幺蛾子,显示都不灵光了,又怕耽误事挨批评,果断用虚拟机换个IP代替一下,重新装机。收获是刻录了一张CentOS盘,其他盘用不了g++都没有, 阅读全文
posted @ 2013-10-23 17:49 SailorNet 阅读(187) 评论(0) 推荐(0) 编辑
 

2013年10月22日

摘要: #set your project namePRJ_NAME = MGameServer#set your project type : choose one belowPRJ_TYPE = g++ -o#PRJ_TYPE =#PRJ_TYPE = ar -r #set Debug or ReleaseCompile_Flag = Debug#Compile_Flag = Release#set your output pathOutput:= bin#set your source folderSRC := SRC#add the lib you used here#LIBS := -lLi 阅读全文
posted @ 2013-10-22 11:52 SailorNet 阅读(212) 评论(0) 推荐(0) 编辑
 

2013年10月21日

摘要: makefile gdb valgrind 阅读全文
posted @ 2013-10-21 16:28 SailorNet 阅读(167) 评论(0) 推荐(0) 编辑
 
摘要: 1.Eclipse Debug下默认会生成 .mk格式的makefile多文件2.下连接可以用一个文件来实现MakeFile功能。转载http://blog.chinaunix.net/uid-22473300-id-3320462.htmlhttp://blog.chinaunix.net/uid-22473300-id-3320462.html首先进行的内容是参数设置部分,如下:设置项目名字,它决定了我们make之后,生成的文件名。比如libXX.so或者XXX.a或者XXXX#set your project namePRJ_NAME=libXXX.so设置项目的类型,是共享库、可执行程 阅读全文
posted @ 2013-10-21 15:03 SailorNet 阅读(970) 评论(0) 推荐(0) 编辑
 

2013年10月19日

摘要: Valgrind 使用简单说明本文部分参考网上相关资料。Valgrind能做什么?•内存使用检测,包括:–内存泄漏–非法内存访问–未初始化变量使用–重复释放内存•多线程竞争–检测死锁-检测竞争Valgrind还能做什么?•性能分析–Cachegrind+cg_annotate它模拟CPU中的一级缓存I1,D1和L2二级缓存,能够精确地指出程序中cache的丢失和命中。如果需要,它还能够为我们提供cache丢失次数,内存引用次数,以及每行代码,每个函数,每个模块,整个程序产生的指令数,这些可以看成程序的执行成本。以上数据其实对于app开发意义不大,仅作为参考。使用方法:–Callgrind+ca 阅读全文
posted @ 2013-10-19 17:50 SailorNet 阅读(194) 评论(0) 推荐(0) 编辑
 
摘要: 信号(signal)是一种进程间通信机制,它给应用程序提供一种异步的软件中断,使应用程序有机会接受其他程序活终端发送的命令(即信号)。应用程序收到信号后,有三种处理方式:忽略,默认,或捕捉。进程收到一个信号后,会检查对该信号的处理机制。如果是SIG_IGN,就忽略该信号;如果是SIG_DFT,则会采用系统默认的处理动作,通常是终止进程或忽略该信号;如果给该信号指定了一个处理函数(捕捉),则会中断当前进程正在执行的任务,转而去执行该信号的处理函数,返回后再继续执行被中断的任务。typedef void (*sighandler_t) (int)sighandler_t signal(int si 阅读全文
posted @ 2013-10-19 16:44 SailorNet 阅读(155) 评论(0) 推荐(0) 编辑
 

2013年10月17日

摘要: 用valgrind对代码进行内存检测的时候,提示“Conditional jump or move depends on uninitialised value(s)”,1 变量未初始化struct tm 结构体未初始化,char tmp[512]未初始化造成的。要初始化,只需memset即可,这样做之后, 阅读全文
posted @ 2013-10-17 14:22 SailorNet 阅读(4793) 评论(0) 推荐(0) 编辑
 

2013年10月12日

摘要: 如果正在写入套接字的时候,当读取已经关闭时,可以得到一个SIGPIPE信号,信号SIGPIPE会终止当前进程,因为信号系统signal( SIGPIPE,HandleFunc); 阅读全文
posted @ 2013-10-12 15:38 SailorNet 阅读(166) 评论(0) 推荐(0) 编辑