今天在用Rust写DragonOS的signal机制时候,遇到了这么一个问题:我需要在fork的时候为进程动态 …
Rust使用lazy_static来延迟全局变量的初始化
场景 在rust中,当我们生成全局static变量的时候,我们可以用以下的代码来声明: Rust编译器的静态求 …
加速Rust的update crates.io index的过程
我们在使用rust进行开发的时候,不可避免的需要从crates.io上面下载一些库。但是由于rust官方的服务 …
Rust:从嵌套循环中退出
在C语言中,我们常用goto语句来在错误条件下跳转到函数的数据清理部分。这种用法的好处尤其体现在“错误发生在嵌 …
rust学习笔记:for循环的一些问题
for循环 迭代一个数组 rust的for循环实际上是被编译器扩展成了对方法的调用。对于使用for循环来迭代一 …
简单实现posix中规定的memcmp函数
简介 memcmp函数的功能非常简单,传入两个指针s1和s2,以及要比较的字节大小n,比较这两块内存的值的差异 …
高效的无锁引用计数结构:lockref
lockref lockref是将自旋锁与引用计数变量融合在连续、对齐的8字节内的一种技术。 lockre …
C语言实现编译期断言
编译期断言是一种对编译期能计算出来的常量的值进行断言,从而避免代码中引入一些不合理的值。 实现原理 编译期断言 …
DragonOS中的READ_ONCE()宏和WRITE_ONCE()宏
DragonOS中实现了与Linux相似的READ_ONCE()宏以及WRITE_ONCE()宏,主要目的在于 …
GCC禁用对某个类型的变量的“基于类型别名的分析”——may_alias
在写C/C++代码的时候,如果我们写以下代码: 那么,在编译的时候,GCC会抛出警告信息,提示我们这里的存在“ …