我有一个指针ptr
,它的地址在内核堆栈空间中。
我想使用此ptr
来获取进程描述符地址。
由于内核堆栈空间和进程描述符大小一起为8kb,我知道我需要向下舍入ptr
的地址以获取进程描述符的地址。
(具有内核堆栈且进程描述符的块以地址编号为8的乘法开始)
我怎么能在宏中这样做?我需要使用什么面膜?
答案 0 :(得分:0)
我会做这样的事情:
#include <stdint.h>
#define MASK 0x01FF
int a = 0;
intptr_t b = (intptr_t)&a;
b &=~MASK;
int * c= (int *)b;
inptr_t是一个足以容纳指针的类型,这就是为什么我选择它超过标准整数