宏PVPROCPTR(pid)可以将PID转换为过程指针。

所以我用但是当我做错了。

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)])


所以我想知道为什么不能使用它?

最佳答案

问题是“为什么”。所以:

pvproc是内部内核结构。如果您要进行内核扩展,那么您所拥有的可能会起作用。我看不到它是从/ usr / lib中的任何* exp文件导出的,因此看来它并不是要在任何地方都可以工作,而是可以在内核内部工作。

我希望AIX将提供内核服务来执行您想要的操作,而不是宏。内核服务在不同版本的AIX上具有更高的稳定性(但是它仍然可以更改-只是不那么频繁)。

让我们退一步,然后问一个更大的问题:为什么要使用pvproc结构? (嗯...首先,答案:这是内核扩展吗?)

09-27 16:10