2022-01
一. 参考网址
1. linux下java调用.so动态库方法: JNA
2. linux c语言 fork() 和 exec 函数的简介和用法
3. 深入理解Reactor 网络编程模型
4. thread join和detach区别
5. pthread_create(3) — Linux manual page(有示例)
6. pthread_join函数介绍和使用实例
7. marshal 和 unmarshal(一)编排,json对象--->xml
8. C语言中的typeof关键字
9. linux 内核宏container_of剖析(知乎,详细)
10 如何深刻理解Reactor和Proactor?(知乎)
11. ranlib的作用
12. Linux 内存映射函数 mmap()函数详解
13. 关于PF_INET和AF_INET的区别
14. VirtualBox 桥接网卡设置
15. Bash Shell将tab符替换成空格
16. (蓝牙)
二. 实践
1. container_of
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b) #undef offsetof #ifdef __compiler_offsetof #define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER) #else #define offsetof(TYPE, MEMBER) ((size_t)&((TYPE *)0)->MEMBER) #endif #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );})