nginx取結構體地址

沈小錯發表於2017-10-13

linux核心提供了一個container_of()巨集,可以根據結構體某個成員的地址找到父結構的地址。

#define container_of(ptr, type, member) ({  
    const typeof( ((type *)0)->member ) *__mptr = (ptr); 
(type *)( (char *)__mptr - offsetof(type,member) );)

而在Nginx也是效仿採用一樣的巨集獲取父結構地址。

#define ngx_queue_data(q, type, link)   
    (type *) ((u_char *) q - offsetof(type, link))


相關文章