我有一個在c庫中定義的全局變量[例如:int globalcount = 0] 和庫初始化函數[說library_init] globalcount增加1。動態變量具有靜態存儲行爲與使用dlopen加載庫時的動態變量
這裏的問題是:當庫使用dlopen和申請電話library_init功能打開和使用dlclose然後再dlopen的呼叫正在重置的globalcount 0
閉庫,我想知道如何防止全局復位變量[我想globalcount必須是1而不是0] 當下一個dlopen被調用,因爲進程不是退出所以全局變量也不能退出等。
如果庫鏈接到在鏈接時使用-l進行處理,我不面臨abv問題。 只有當庫打開使用dlopen /問題dlclose [多次]
在Linux操作系統上 PROG蘭:C 編譯器:GCC
怎麼辦,在數據段的內存不能釋放時dlclose叫?
這是一個操作系統問題,而不是語言問題。如果你告訴我們操作系統,它可能會有幫助(儘管我懷疑它)。當調用dlclose()時,如何將變量的狀態保存到文件中。 –
操作系統是Linux,我們不想將任何想法保存到一個文件中,我認爲它不是一個好方法。是否有任何方式使用靜態存儲類可以解決abv問題 – Syedsma
我認爲你應該問問自己你爲什麼要在該庫上執行'dlclose'的問題。我想不出多大用處。 –