简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
昨天在工作中遇到一个超越我现有认知的知识盲区,经过自己的反思觉得,工作了这么多年,对linux系统的深度和广度掌握的还是不够。现有认知觉得,linux中只要有root,啥都能干,也确实如此,但是在某种情况下,你还不能赤裸裸的直接干,干不了还。到底是个什么问题呢?Go ahead问题现象从上图可以看到,owner 为HwHiAiUser, group 为HwHiAiUser,当前用户为HwHiAiU
什么是ASANASAN(Address Sanitizer)是一个内存检测工具。gcc4.8版本及以上自带。支持多平台(x86, ARM, MIPS (both 32- and 64-bit versions of all architectures), PowerPC64)、多操作系统(Linux, Darwin (OS X and iOS Simulator), FreeBSD, Androi
zigzag编码的出现是为了解决varint对负数编码效率低的问题。zigzag编码的原理非常简单,就是将有符号整数映射为无符号整数。在实现上,映射通过移位即可实现,而不需要使用映射表来存储。zigzag编码原理解析对于正整数,可以把无意义的0去掉,只存储从1开始的"有效"数据,这样就可以压缩数据了。例如,对于正整数1,其补码(当代计算机中实际按补码表示整数)按位展开,即为(00000000 00
前文介绍了tkinter中的grid布局,相信对tkinter的布局套路有了进一步的了解。本文将介绍另一种布局类place。同样,展示布局类与控件类的类间关系:文章目录placexyrelxrelywidthheightanchorplaceplace(cnf={}, **kw)place和其他两种布局方式相比,更加"自由"但是需要做的事情也多。布局一般就是设置子控件相对于父控件的 起始位置、宽和
两数交换方法在c语言中,将两个数进行交换,我知道的方法有4种,我自己倾向于方法3。文章目录方法1方法2方法3方法4方法1#define SWAP1(a, b) {a = a + b; b = a - b; a = a - b;}void swap1(int* a, int* b){if (a == b)return;*a = *a + *b;*b = *a - *b;*a = *a - *b;}i
一般在工程中,自动构建可能会编译两个版本的发布包,一个debug版本,一个release版本。那么通过cmake怎样来实现呢?本文就以这个需求为例,来介绍cmake中的逻辑控制。目录结构|-- bin|-- build|-- CMakeLists.txt|-- src|`-- main.cDebug-Release模式控制顶层CMakeLists.txtcmake_minimum_required
Sanitizers是谷歌发起的开源工具集,包括了AddressSanitizer, MemorySanitizer, ThreadSanitizer, LeakSanitizer,Sanitizers项目本是LLVM项目的一部分,但GNU也将该系列工具加入到了自家的GCC编译器中。GCC从4.8版本开始逐步支持 Sanitizer,这些工具都是查找隐藏Bug的利器。AddressSanitize