【发布时间】:2011-04-06 18:17:39
【问题描述】:
我想在 Linux 进程中的特定地址分配内存。 其实我想做类似的事情: 我将有一些过程。 每个进程都会调用库(由我编写)中的初始化函数,该函数将在进程的地址空间中分配一些内存(将存储进程相关信息)。这将由每个进程完成
一旦分配了这块内存,以后程序将调用库中的其他函数。现在这些函数想要访问第一个函数分配的内存(包含进程相关信息)。
问题是我无法将分配在进程地址空间中的内存地址存储在库中(即使在静态指针中,因为有进程数),我什至不希望用户程序存储该地址。我只是不希望用户程序知道库在其地址空间中分配了内存。库功能将是他们的抽象,他们必须使用它们。
是否有可能克服这个问题。 我在想,每当任何进程调用分配内存的库的初始化函数时,内存总是在所有进程中分配到相同的地址(比如 10000),而与所有其他事情无关。
因此,任何想要访问该内存的库函数都可以通过以下方式轻松完成:
char *p=10000;
然后访问,即访问调用库函数的进程的地址空间。
【问题讨论】:
-
这个问题有点含糊。您有特定的用例吗?
-
为什么图书馆不能跟踪分配情况?例如,在动态列表中。
标签: linux malloc virtual-memory