我们正在尝试使用kauth进程侦听器(KAUTH_SCOPE_PROCESS)监视进程。 kauth进程监听器的一个参数是指向proc_t(struct proc)的指针
我们想要访问proc_t的一些成员,例如,p_name(进程名称),p_textvp(进程可执行文件的vnode)等。我们编写了一个代码但是在编译时,我们得到了编译错误“类型'结构'不完整的定义““
如果有人引导我解决这个问题,那将会很明显。
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;
}
如果您需要更多信息,请与我们联系。
该结构是不透明的,不支持直接取消引用指针,因为它的布局可能会从OS版本更改为OS版本。
使用诸如proc_name()
之类的访问器功能。请注意,p_textvp
始终是NULL
所以没有访问者。