我想寫一個程序,我必須通過(共享)庫(它的源代碼可用)調用某些函數。庫的C代碼有幾個全局變量,許多函數都會改變這些全局變量的值。我在程序中必須做的事情是,我所做的每個函數調用都可以使用一組新的變量。在C程序中重新初始化庫變量
例如,讓這個函數是庫的一部分:
int x = 1;
int foo()
{
int a = 0;
//do somethings to 'a'
//...
x++;
return a;
}
現在我調用foo()
從我的程序每次的x
價值得到更新1到2然後3然後4等on ...我嘗試構建一個程序,以便每次調用foo()
時,都會看到x = 1.
我很抱歉地說,我對C/linux如何處理這些變量空間的知識不足,所以這個問題可能看起來很模糊。以上只是一個小例子,實際上,有太多的變量實際上不可能手動重置它們的值。
什麼可能是最好的方式來編譯該庫和/或使用它我的程序,以刷新變量?
(在一個側面說明,什麼我也試圖做的是並行爲foo()調用,但由於共享變量的,我不能做到這一點。)
編輯: 一些工作時web開發項目,我曾經將一些代碼封裝在web服務中,然後從主程序中調用這些服務。 C/Linux中是否存在類似的框架?請注意,函數正在返回數據。
你的側面提示,你所要求的並不能解決你真正的問題。 – 2012-07-19 18:48:04
謝謝!有什麼建議麼?我們可以創建類似服務的東西並從我的程序中調用它嗎? – Ali 2012-07-19 18:52:38