0

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

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

4

1 回答 1

1

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

pvproc 是一个内部内核结构。如果您正在制作内核扩展,那么您所拥有的可能能够工作。我没有看到它是从 /usr/lib 中的任何 *exp 文件导出的,因此它似乎不打算从任何地方工作,而是从内核本身内部工作。

我希望 AIX 会提供一个内核服务来做你想做的事情,而不是一个宏。内核服务在不同版本的 AIX 之间具有更高的稳定性(但它仍然可以更改——只是不那么频繁)。

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

于 2013-12-30T15:20:41.463 回答