Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Linuxカーネルでは、カーネル構造体のメンバー変数のオフセットを見つける必要があります。offsetof を使用しようとしましたが、未定義の構造体があると主張しました。ユーザー空間で行うことは可能ですか?カーネル構造体はユーザー空間での使用が許可されていないため、offsetof を使用して見つけることができません。これを見つける別の方法はありますか?
カーネルでは、次を使用します。
#include <linux/stddef.h>
次のように定義されています。
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
これは、Linux カーネル全体で使用されます。
ユーザーモードでこれを使用しようとしている場合、同様の構造が libc インクルードに存在する可能性があります。