Linux - Note (Things You Never Should Do in the Kernel)
在面向新开发人员的 Linux 内核编程邮件列表中,人们会提出一些常见问题。几乎每次提出这些问题时,回答总是“不要这样做!”,让困惑的提问者想知道他们闯入了什么样的奇怪开发社区。这是偶尔发布的系列文章中的第一篇,旨在解释为什么做这些事情通常不是一个好主意。然后,为了弥补这些指责,我们打破了所有的规则
阅读全文 →在面向新开发人员的 Linux 内核编程邮件列表中,人们会提出一些常见问题。几乎每次提出这些问题时,回答总是“不要这样做!”,让困惑的提问者想知道他们闯入了什么样的奇怪开发社区。这是偶尔发布的系列文章中的第一篇,旨在解释为什么做这些事情通常不是一个好主意。然后,为了弥补这些指责,我们打破了所有的规则
阅读全文 →寻找认证服务器 通过抓包发现3个与众不同的包,下面紧接着就是锐捷认证服务器的回复包,协议开始变成EAP协议。 接下来,我们对包的内容进行一波分析, c8:7f:54:c9:b2:df 不是我的mac地址吗?前面也是6字节,说明前面大概率也是一个mac地址,而且是固
阅读全文 →良好的Git提交信息对于项目维护和团队协作至关重要。在Angular项目中,采用规范化的提交信息可以帮助团队成员更好地理解代码变更的目的和影响范围。下面我将详细介绍Angular项目中的提交信息规范。 为什么需要提交信息规范? 规范的提交信息有以下好处: 提高代码审查效率 自动生成更新日志 快速筛选
阅读全文 →static __always_inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n) { if (!check_copy_size(from, n, tr
阅读全文 →多态差异 先说结论,C++的多态因为虚函数的缘故,他的表现和Java的略与不同,虚函数。当C++程序员进行Java开发的时候如若不能立即切换,可能会因为他们所谓的反直觉导致代码编写出现差异 源代码 C++ Code #include <iostream> class Father { public
阅读全文 →本次编译及运行测试均在Deepin(Debian)平台。 下载源代码 首先我们得克隆llvm-project完整的代码,不能只下载llvm子项目的代码(这样只有旧版才能编译的了)。 github git clone https://github.com/llvm/llvm-project gitee
阅读全文 →引言 在分析ART虚拟机的中对象模型时,发现Mirror Object类中引用的其他object指针/对象头的指向Class的指针,都使用了HeapReference来包装,都是HeapReference类型,而HeapReference类只是对uint32_t类型的值进行包装,在64位系统是8字节
阅读全文 →forward std::forward 是一个函数模板,通常与右值引用(rvalue references)结合使用。它的主要作用是实现完美转发(perfect forwarding),确保在函数模板中能够保留传入参数的值类别(左值或右值)。这个特性在泛型编程和模板代码中非常重要,可以避免不必要的
阅读全文 →