我们正尝试使用 kauth进程监听器(KAUTH_SCOPE_PROCESS)来监视进程。 kauth进程侦听器的参数之一是指向proc_t(结构proc)的指针
我们要访问proc_t的某些成员,例如 p_name (进程名称), p_textvp (进程可执行文件的vnode)等。我们编写了代码但是,在编译时,我们收到编译错误“类型'struct proc'的定义不完整”
如果有人指导我解决此问题,将不胜感激。
static int ProcessScopeListener(
kauth_cred_t credential,
void* idata,
kauth_action_t action,
uintptr_t arg0,
uintptr_t arg1,
uintptr_t arg2,
uintptr_t arg3
)
{
proc_t process = (proc_t) arg0;
…
//Compilation error in the following two lines
char* proc_name = &process->p_name[0];
struct vnode* p_textvp = process-> p_textvp;
.
.
.
return KERN_SUCESS;
}
让我知道是否需要更多信息。
答案 0 :(得分:0)
该结构是不透明的,不支持直接引用其指针,因为其布局可能会因操作系统版本而异。
改用proc_name()
之类的访问器函数。请注意,p_textvp
始终为NULL
,因此没有访问器。