2016-06-14 52 views
0

我們LD_PRELOAD一個庫的某些功能,如果我想禁用該功能並想卸載庫有沒有辦法做到這一點?我不要想要使用RTLD,它必須是一個LD_PRELOAD所以不建議dlsym。如何在LD_PRELOAD之後卸載庫?

另外一個使用案例是LD_PRELOAD由進程創建的任何子進程也具有我不想要的相同環境。有沒有辦法做到這一點?

回答

0

您可以重置將它設置爲空字符串的變量。

在C語言中,你可以這樣做:

int ret = unsetenv("LD_PRELOAD") 

另外,還可以從setenv

+0

一個代碼,如果我們想卸載任何具體的路徑這將卸載一切是如何對我們的環境中設置呢?我們應該做一些像getenv然後unsetenv和setenv? –

+0

也許,因爲只有一個環境變量,我不認爲你只能卸載其中的一個。如果有一種方法可以在不通過LD_PRELOAD變量中的所有值的情況下完成,我不知道它。 – Franks