宏PVPROCPTR(pid)可以将PID转换为Process指针。
所以我用它。但是当我做它时会出错。
1>ld : 0711-317 error : Undefined symbol: pvproc
1> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
AIX头文件中此宏的定义如下:
extern struct pvproc pvproc[NPROC]; /* the process table, itself */
/* convert pid to proc pointer */
#define PVPROCPTR(pid) (&pvproc[PROCMASK(pid)])
所以我想知道为什么不能使用它?
答案 0 :(得分:1)
问题是“为什么”。所以:
pvproc是一个内部内核结构。如果您正在进行内核扩展,那么您可能能够使用它。我没有看到它从/ usr / lib中的任何* exp文件导出,因此看起来它不是在任何地方工作,而是在内核本身内工作。
我希望AIX提供内核服务来做你想要的而不是宏。内核服务在不同版本的AIX上具有更高的稳定性(但它仍然可以改变 - 只是不常见)。
让我们回过头来问一个更大的问题:为什么你想要pvproc结构? (嗯......首先,回答:这是内核扩展吗?)