我想在特定地址的Linux進程中分配內存。 其實我想這樣做: 我會有一些進程。每個進程都會調用庫中的一個初始化函數(由我編寫),它將在進程的地址空間中分配一些內存(它將存儲進程相關的信息)。這將通過每個進程完成在Linux中分配特定地址
一旦分配了這個內存,後面的程序將調用庫中的其他函數。現在這些函數想要通過第一個函數訪問分配的內存(包含與進程有關的信息)。
問題是我不能在庫中的進程地址空間中存儲分配的內存地址(即使在靜態指針中也沒有,因爲有多少進程),我甚至不希望用戶程序存儲該地址。我只是不希望用戶程序知道在地址空間中有由庫分配的內存。庫函數將爲他們抽象,他們必須使用它們。
是否有可能超過這個問題。 我在想,當任何進程調用分配內存的庫的初始化函數時,內存總是在所有進程中被分配到相同的地址(比如說10000),而不管其他所有事情。
所以這其中要訪問內存中的所有庫函數可以很容易地做到: char *p=10000;
,然後訪問,這將是進入到這被稱爲庫函數的進程的地址空間。
這個問題有點含糊。你有特定的用例嗎? – 2011-04-06 18:20:47
爲什麼圖書館不能跟蹤分配?例如,在一個動態列表中。 – jwd 2011-04-06 18:40:06