![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 72
一条叫做nemo的鱼
一枚孜孜不倦上下求索的程序员。主要关注领域:c/c ,数据结构算法,嵌入式,数据库,linux kernel.设计模式,lock free编程,异步IO.架构设计
展开
-
构造一个简单的操作系统内核,详解进程切换细节
linux kernel 进程调度原创 2021-12-11 23:06:48 · 1308 阅读 · 0 评论 -
疑难杂症之malloc死锁__lll_lock_wait_private
查看glibc源码可知, malloc内部是有锁的。那说明malloc是一个线程安全型函数,但是它不是一个可重入函数。重入的意思是,比如当前线程正在做malloc, 如果此时因为某种原因触发了信号,那么操作系统会保存好现场(正在执行的malloc),转而去执行信号处理函数,如果信号处理函数里面又有malloc的调用,那么此时就发生了malloc重入。当malloc重入时,可能导致线程死锁。main.c 如下:#include <stdio.h>#include <signal.原创 2021-10-19 00:45:53 · 5914 阅读 · 2 评论 -
container of的用法
container_of : 在已知一个结构体的成员的名字,以及其地址的情况向,反推该结构体的首地址offsetof : 获取一个结构体成员在结构里面的偏移结构体首地址 = 成员地址- 成员偏移以下是一个例子:#include <stdio.h> #include <stdlib.h>#define offsetof(TYPE,MEMBER) ((int) &((TYPE *)0)->MEMBER) //为什么这样就能得到偏移?#def原创 2021-09-27 01:10:57 · 440 阅读 · 0 评论