Albert World


  • 首页

  • 归档

  • 标签

  • 分类

  • 工具

  • 关于

  • 搜索

std::uniform_real_distribution的一个bug引发的服务器崩溃

发表于 2022-08-06 | 更新于 2022-08-07 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,038(字)   |   阅读时长: 5(分)

前言

近日发生一次线上游戏服务器宕机问题,通过日志和core文件信息定位到崩溃的函数,但是崩溃的位置却是一段很长时间都没有改动过的代码,起初怀疑是配置数据的问题,但仔细查看之后均正常,然后又怀疑是玩家旧数据异常导致,但是分析代码逻辑后也没发现问题,最后是一个同事发现生成随机数的代码有bug,导致数组越界了,还真是个意想不到的原因。

阅读全文 »

SVN如何删除文件名包含空格的文件

发表于 2022-07-31 | 更新于 2022-07-31 | 分类于 SVN |
热度 ℃
  |   字数统计: 913(字)   |   阅读时长: 4(分)

前言

SVN 和 Git 两个常用的版本管理工具都有 add 和 commit 命令,但是这两个命令的含义是不同的,git add 命令添加的是变化的文件,不管是增加的文件、删除的文件还是更新的文件,使用 git add 命令之后都可以放到暂存区,而 svn add 命令只能影响新增和变化的文件,对原在库中现已删除的文件没有影响,想要真正删除文件需要在执行 svn commit 命令之前先执行 svn delete 命令。

阅读全文 »

一个月黑风高的夜晚紧急完成gitlab服务器数据迁移

发表于 2022-07-30 | 更新于 2022-07-30 | 分类于 CI/CD |
热度 ℃
  |   字数统计: 1,851(字)   |   阅读时长: 8(分)

前言

真是无巧不成书,白天刚刚讨论了一天SVN服务器迁移事情,晚上突然被告知 gitlab 服务无法访问了,赶紧连接到服务器上查看,好家伙,磁盘还剩下可怜的 98K,SVN 不管了,先把 gitlab 搞定吧,毕竟第二天的游戏更新包都打不出来了,确认是磁盘不足问题后已经是9点半了,月亮都升起老高了,赶紧开始修复吧。

阅读全文 »

推荐一个C++枚举转字符串的开源项目magic_enum

发表于 2022-07-23 | 更新于 2022-08-21 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,261(字)   |   阅读时长: 5(分)

前言

C++11引入了强类型的枚举类 enum class 用来代替旧风格枚举enum,新引入的 enum class 具有诸多优点:防止命名空间污染,不能隐式的转换为整型,防止不同类型的枚举相互赋值,支持前置声明。当然它也不是只有优点,因为类型不能隐式转换成int,所以在使用或者输出时需要使用 static_cast 进行转换,不过即便使用 static_cast 可以转换后输出,也不便于我们辨识枚举的值,如果想输出枚举定义时的名字就需要使用一些魔法了。

阅读全文 »

C++17使用std::optional表示一个可能存在的值

发表于 2022-07-17 | 更新于 2022-07-17 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,147(字)   |   阅读时长: 5(分)

前言

平时写代码会遇到一种传递参数特殊值标记特殊流程,或者函数返回值存在魔法数的情况,很需要一种标记参数或返回值状态的结构,那么在 C++17 标准下提供了 std::optional 这个模板类,可以表示一个值不存在的状态,一起来看看用法吧。

阅读全文 »

偶然在github开源项目中发现了.travis.yml这货

发表于 2022-07-02 | 更新于 2022-07-03 | 分类于 CI/CD |
热度 ℃
  |   字数统计: 1,453(字)   |   阅读时长: 6(分)

前言

偶然在一个github开源项目中发现了.travis.yml这货,然后一发不可收拾,翻了翻之前看的几个开源库都有这个文件,并且最近经常看到它,这被称为“巴德尔-迈因霍夫现象”,是一种认知偏见,即在第一次注意到某一事物后,有一种更频繁地注意到它的倾向,导致某人相信它有很高的频率,既然这样索性就深入研究了一下这个文件,发现它原来是用于持续集成的。

阅读全文 »

C++11中的noexcept说明符和操作符

发表于 2022-06-26 | 更新于 2022-06-26 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,965(字)   |   阅读时长: 8(分)

前言

noexcept 这个说明符看起来很厉害的样子,给人一种函数加上它就可以不产生异常的感觉,但事实真的如此吗?它真的能消除一切异常吗?答案是不能!它只是函数的一种说明,作为开发者我们需要自己保证标记了 noexcept 的函数不产生异常。啥?这不是没事找事吗?

阅读全文 »

C++17新语法之if和switch语句中可以初始化变量啦

发表于 2022-06-18 | 更新于 2022-06-19 | 分类于 C/C++ |
热度 ℃
  |   字数统计: 1,120(字)   |   阅读时长: 5(分)

前言

今天在看一些c++代码时偶然间发现一些示例,在if语句的小括号内居然出现了分号,难道这一段是伪代码吗?之前从来没见过这种写法,然后写了一个例子,用最新的编译器编译后发现真的是正常的代码,并且可以成功运行,然后脑袋有个声音一闪而过,是不是一直就支持这种写法,只是我不知道而已,后来几经周折,终于发现真相,原来这其实是C++17新的语法。

阅读全文 »

了解git裸仓库并利用post-receive自动化部署

发表于 2022-06-12 | 更新于 2022-06-12 | 分类于 Git |
热度 ℃
  |   字数统计: 3,791(字)   |   阅读时长: 18(分)

前言

【裸仓库】指的是使用 git init --bare 命令得到的仓库,是对这种操作结果的一种直译,这个词对于刚接触 git 软件的小伙伴来说可能是第一次听说,而我也是最近实际操作了几次才渐渐理解,下面解释一下什么是裸仓库,以及为什么要使用它,有理解不对的地方还请大家指正。

阅读全文 »

linux环境下常用的查找命令find、which、grep

发表于 2022-06-05 | 更新于 2022-06-07 | 分类于 linux |
热度 ℃
  |   字数统计: 1,458(字)   |   阅读时长: 7(分)

前言

查找是运维工作的很重要的一部分,不管是文件查找,还是内容查找,在日常开发维护过程中都常常用到,本文把一些日常用到的查找命令总结到一起,通过对比来学习异同点,进而达到 增强记忆的目的。

阅读全文 »
1…101112…28
Albert Shi

Albert Shi

阳光总在风雨后,大雨过后是冰雹

273 日志
44 分类
694 标签
RSS
GitHub 简书 StackOverflow CSDN 知乎 墨天轮
Links
  • Web前端导航
  • 文字编码导航
  • 在线代码编译
  • 在线工具集合
  • 在线教程集合
© 2018 - 2024 Albert Shi
Hexo 强力驱动
主题 - NexT.Mist
Unless otherwise specified, this blog is licensed under a CC BY-NC-ND 4.0 International License.