2011-08-17 32 views
8

我們有一個C庫(.lib窗口& .a linux),它只允許創建一個單例並且也不能正常關閉(內存泄露並且線程還活着)曾經被實例化過。隔離並實例化正在處理的C庫

重寫它並找出錯誤,是否有一種簡單的方法來隔離這種在進程中的這種行爲不當的代碼,以便可以刪除單例限制,並且可以對不潔的整數進行沙箱化?

我主要興趣在任何過程中的選項,如果確實有的話。一個單獨的進程顯然會解決這個問題,但會招致建築架空,使圖書館的遙控除非有非常低的影響的解決方案(它具有廣泛的API,所以保持大量的膠水是不是特別有吸引力)。

+2

簡潔地 - 沒有。如果庫的業主不會合作,重寫可能是從長遠來看,最容易的。 –

回答

2

對不起,但沒有簡單的方式來做到這一點。沙盒行爲不當庫使用獨立的進程,你已經建議自己常見的做。 IPC Buffers等IPC工具可能有助於定義和實現IPC協議。