0
在linux內核中,我需要找到內核結構成員變量的偏移量。我試圖使用offsetof,但它聲稱我有一個未定義的結構。用戶空間中可以做什麼?由於內核結構不允許在用戶空間中使用,我看不到使用offsetof。有沒有另一種方法來找到這個?如何找到內核結構元素的偏移量?
在linux內核中,我需要找到內核結構成員變量的偏移量。我試圖使用offsetof,但它聲稱我有一個未定義的結構。用戶空間中可以做什麼?由於內核結構不允許在用戶空間中使用,我看不到使用offsetof。有沒有另一種方法來找到這個?如何找到內核結構元素的偏移量?
在內核中,使用方法:
#include <linux/stddef.h>
它被定義爲:
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
這是用來在整個Linux內核。
如果您嘗試在用戶模式下使用它,那麼類似的構造可能存在於libc includes中。
我知道offsetof,但我不能使用內核結構在usermode中找到偏移量。如果你嘗試聲明像struct task_struct任務,它將不會編譯,因爲task_struct是未定義的 – REALFREE 2013-03-14 16:39:34
我在glibc源文件中發現了這個。它可能工作:#define offsetof(Type,Member)((size_t)&((Type *)NULL) - > Member) – 2013-03-14 17:38:49