- 博客(4)
- 收藏
- 关注
原创 信息存储
大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。机器级程序将内存视为一个非常大的字节数组,称为虚拟内存(virtual memory),内存的每个字节都由一个唯一的数字来标识,称为它的地址(address),所有可能的地址的集合就称为虚拟地址控件。顾名思义,这个虚拟地址空间只是一个展现给机器级程序的概念性映像。实际的实现是动态随机访问存储器(D...
2020-04-21 15:37:12
496
原创 container_of(ptr, type, member)
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)#define container_of(ptr, type, member) ({ const typeof( ((type *)0)->member ) *__mptr = (ptr); (type...
2020-04-16 15:13:02
234
原创 #define LIST_HEAD_INIT(name) { &(name), &(name) }
最近正在看linux 源码中对双链表的实现:struct list_head {struct list_head *next, *prev;};#define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HEAD(name) struct list_head name = LIST_HEAD_INIT(na...
2020-04-16 14:54:40
981
原创 pipe函数、read函数和write函数
pipe: #include <unistd.h> int pipe(int pipefd[2]);创建一个管道,一个单向数据通道。pipefd[0]表示管道的读取端。pipefd[1]是指管道的写端。read: #include <unistd.h> ssize_t read(int fd, void *buf, size_t count);...
2020-04-15 17:05:21
5731
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人