- 2026/05/14
- |
- 未分类
- |
- 0 Replies
一次 SMB 视频点击引发的 SIGSEGV:当 ffmpeg 和 libvips 各带一份 glib
用户:"我点了 SMB 上的电影,server 直接崩了。"
我:"…让我看看。"
目录
现象:一点视频,服务器整个退出
第一直觉:又是 LD_LIBRARY_PATH 顺序问题
真相:两个 bundle,两份 glib
为什么"一份 glib"是天大的事
短期回避 vs. 真正修复
tokimo-lib:把 ffmpeg 和 libvips 关进同一个 Docker
CI 里如何强制"只有一份 glib&q...
- 2017/06/22
- |
- 技术随笔
- |
- 0 Replies
最近提及C++的构造函数与析构函数的一些特性引发了一些思考,不如写篇文章记录下过程。
关键字: C++,构造函数,析构函数,虚函数,纯虚函数,私有函数
构造函数是否可以是私有函数
之前单纯从理论上思考,一个类实例化必然要通过构造函数来产生实例,所以一个类的构造函数如果是私有的,将无法从外部实例化。至此思路都是没有问题的,但是发现自己忘记了一种情况:类的static公有函数可以在没有实例化时即可使用,它自然也能访问到类的私有成员。
所以,类的构造函数可以是私有的,可以通过static静态函数来创建实例。基于这个思路,我们可以在该静态函数中增加一些操作来管理该类的实例化。例如,我们可以通...
- 2017/06/20
- |
- 技术随笔
- |
- 0 Replies
最近发现虽然一直在使用STL,但从来没有好好的去了解对比过,所以决定系统的学习与归纳下STL相关知识。
关键字: vector,list,map,set,unordered_map,unordered_set
Vector
Vector在内存上的分布是采用一段连续内存来存储,进行插入操作时如果内存不足则会malloc申请一块新的内存并将当前数据memcpy复制到新内存中并free释放原内存。但是在有些实现中通过一些算法来分析申请新内存并舍弃旧内存的效率,当效率底下时会通过使用链表连接两块内存来存储数据,当然这部分对外是不透明的,外部使用时只会看到Vector是一整块内存空间。
对Ve...