linux环境下服务器程序的查看与gdb调试 发表于 2019-01-11 | 更新于 2019-11-17 | 分类于 gdb | 热度 ℃ | 字数统计: 1,214(字) | 阅读时长: 5(分) 前言这一篇主要是记录下调试服务器程序常用的命令,内容很简单,但是长时间不用很容易记混,因为游戏服务器也不是天天宕机,所以当有一天突然挂掉需要调试的时候,如果记不清调试命令很容易耽误时间,有好几次我就把gdb gameserver core记成了gdb core gameserver,所以干脆把这些内容统计到一起,查询的时候也方便。 阅读全文 »
抓扑克牌风格的插入排序 发表于 2018-12-04 | 更新于 2019-11-17 | 分类于 Sort | 热度 ℃ | 字数统计: 1,645(字) | 阅读时长: 6(分) 前言上次聊到了快速排序,我们说到快排这个名字是非常抽象的,究竟什么是快排,从名字上我们无从得知,或许叫二分排序都比快速排序要形象的多,可是这又和归并排序重复了,所以我们还是不要在意快排的名字了,接下来看一下今天的插入排序,这里指的是简单的插入排序。 阅读全文 »
Mysql中使用select into语句给变量赋值没有匹配记录时的结果 发表于 2018-11-17 | 更新于 2019-11-17 | 分类于 Mysql | 热度 ℃ | 字数统计: 945(字) | 阅读时长: 4(分) 前言对select into语句感兴趣是因为看了项目中的一个存储过程引起的,在程序运行之前看了存储过程的逻辑,本以为没有数据时会报错,结果程序却正常运行,这说明我对select into语句理解的问题,同时也暴露了一个知识盲点,所以写了个小例子测试一下,并把测试的过程记录方便日后查找。 阅读全文 »
Lua中关于table对象引用传递的注意事项 发表于 2018-09-18 | 更新于 2019-11-17 | 分类于 Lua | 热度 ℃ | 字数统计: 1,588(字) | 阅读时长: 7(分) 前言最近写了挺长一段时间的Lua,发现Lua这个语言真的是很随意,产生这种感觉的根本原因应该是它把“函数” 作为了“第一类值”,也就是说函数也可以作为变量的“值”,这使得Lua可以随处定义函数,进而改变逻辑的走向,整个流程任你摆布。 阅读全文 »
unique_ptr浅析 发表于 2018-09-12 | 更新于 2019-11-17 | 分类于 C/C++ | 热度 ℃ | 字数统计: 3,217(字) | 阅读时长: 13(分) 前言unique_ptr这个指针是C++11标准时被引入标准库的,有一种说法称它是boost::scoped_ptr的一个分身,并且它在C++11的时候“转正”了,但是scoped_ptr还被留在boost库中,看来没有转正的机会了,不过unique_ptr与scoped_ptr确实很像,unique_ptr只比scoped_ptr多了一个移动语义,可以通过std::move()函数来转移内部对象的所有权。 阅读全文 »
weak_ptr浅析 发表于 2018-09-01 | 更新于 2019-11-17 | 分类于 C/C++ | 热度 ℃ | 字数统计: 1,980(字) | 阅读时长: 8(分) 前言weak_ptr这个指针天生一副“小弟”的模样,也是在C++11的时候引入的标准库,它的出现完全是为了弥补它老大shared_ptr天生有缺陷的问题,其实相比于上一代的智能指针auto_ptr来说,新进老大shared_ptr可以说近乎完美,但是通过引用计数实现的它,虽然解决了指针独占的问题,但也引来了引用成环的问题,这种问题靠它自己是没办法解决的,所以在C++11的时候将shared_ptr和weak_ptr一起引入了标准库,用来解决循环引用的问题。 阅读全文 »
shared_ptr浅析 发表于 2018-08-15 | 更新于 2019-11-17 | 分类于 C/C++ | 热度 ℃ | 字数统计: 3,222(字) | 阅读时长: 13(分) 前言这个指针近乎完美,原来出现在boost库中,C++11时引入了标准库,解决了auto_ptr对内部对象独占的机制,转而采用引用计数的方式,每增加一次赋值,则引用计数加1,每析构一个智能指针对象,则引用计数减1,当引用计数为1时销毁智能指针对象的同时,也析构内部对象。这种采用引用计数方式避免了对象所有权转移,所以作为函数返回值,函数参数,容器的元素都不会有问题,但是因为引用计数的加入,相应的会带来对引用计数维护的开销。 阅读全文 »
auto_ptr浅析 发表于 2018-08-08 | 更新于 2019-11-17 | 分类于 C/C++ | 热度 ℃ | 字数统计: 3,584(字) | 阅读时长: 14(分) 前言之前简单的列举了一下各种智能指针的特点,其中提到了这个历经沧桑的指针,C++98中引入,C++11中弃用,C++17中被移除,弃用的原因主要是使用不当容易造成内存崩溃,不能够作为函数的返回值和函数的参数,也不能在容器中保存auto_ptr。其实说这个指针“不能够作为函数的返回值和函数的参数,也不能在容器中保存”,这个结论过于武断了,经过一系列的测试后发现,原来真正的结论不应该说“不能”,准确来说是“不建议”。 阅读全文 »
智能指针分类及简单特性 发表于 2018-08-06 | 更新于 2019-11-17 | 分类于 C/C++ | 热度 ℃ | 字数统计: 801(字) | 阅读时长: 3(分) 前言智能指针的种类繁多,我听说过的就有这些:auto_ptr、shared_ptr、weak_ptr、unique_ptr、scoped_ptr、scoped_array、shared_array、intrusive_ptr,这些智能指针看起来种类繁多,但实际上常用的就只有两三种,他们是shared_ptr、weak_ptr和unique_ptr,先简单了解一下这几个指针,后续再列出具体的例子和选择标准。 阅读全文 »
简述TCP三次握手和四次挥手流程 发表于 2018-07-11 | 更新于 2020-02-26 | 分类于 Network | 热度 ℃ | 字数统计: 1,486(字) | 阅读时长: 5(分) 前言关于TCP的连接过程,很多从事程序开发的小伙伴应该都听过三次握手,可这三次握手的细节还是有很多人不太清楚的,特别是有些参数记不清楚,我也经常弄错,所以我根据自己的理解画了两张图,将TCP连接和断开的流程简单记录一下,以方便后续查找复习之用。 阅读全文 »