我希望在Linux进程中的特定地址分配内存。
实际上,我想做的是:
我将有许多进程。
每个进程都会调用由我编写的库中的初始化函数,该函数将在进程的地址空间中分配一些内存(其中将存储与进程相关的信息)。这将由每个进程执行。
一旦分配了这个内存,程序将在库中调用其他函数。现在,这些函数想要访问由第一个函数分配的内存(包含进程相关信息)。
问题在于我不能在库中存储进程地址空间中分配的内存的地址(甚至不能在静态指针中存储,因为有许多进程),我也不希望用户程序存储该地址。我只是不想让用户程序知道库在他们的地址空间中分配了内存。库函数将是抽象的,他们只需要使用它们。
有可能克服这个问题吗? 我想过,每当任何进程调用分配内存的库的初始化函数时,无论其他事情如何,内存总是在所有进程中的相同地址(比如10000)上分配。
这样,任何想要访问该内存的库函数都可以轻松地通过以下方式进行:
一旦分配了这个内存,程序将在库中调用其他函数。现在,这些函数想要访问由第一个函数分配的内存(包含进程相关信息)。
问题在于我不能在库中存储进程地址空间中分配的内存的地址(甚至不能在静态指针中存储,因为有许多进程),我也不希望用户程序存储该地址。我只是不想让用户程序知道库在他们的地址空间中分配了内存。库函数将是抽象的,他们只需要使用它们。
有可能克服这个问题吗? 我想过,每当任何进程调用分配内存的库的初始化函数时,无论其他事情如何,内存总是在所有进程中的相同地址(比如10000)上分配。
这样,任何想要访问该内存的库函数都可以轻松地通过以下方式进行:
char *p=10000;
然后进行访问,这将访问调用库函数的进程的地址空间。