我正在开发Kext,它应该可以访问struct proc->p_pid
字段。问题是结构仅在XNU源中定义,因此在编译期间遇到incomplete definition of type 'struct proc'
错误。
从我的观点来看,将XNU标题包含在我自己的项目中是一个难闻的解决方案,但是另一种方法是什么?是复制并将结构粘贴到我自己的代码中吗?
答案 0 :(得分:5)
你应该使用proc_pid(proc_t)
来做这件事。该结构意味着不透明,因为如果在内核修订版之间进行更改,您的代码可能会访问不正确的偏移量。
如果我做了一些邪恶的事情,我只会包含结构的定义,否则我会去寻找功能界面。