2010-02-17 21 views
21

有沒有一種標準的方法來讀取Linux上使用C的INI文件這種配置?在Linux上使用C語言的INI文件

我在C.在基於Linux的手持設備和編寫代碼的工作

否則,我想了解任何替代品。

最後更新:

我已經探索了,甚至使用LibConfig。但足跡很高,我的使用過於簡單。所以,爲了減少足跡,我推出了自己的實施。實施過程不是非常通用,實際上現在已經相當耦合了。配置文件在啓動應用程序時被解析一次並設置爲一些全局變量。

+0

肯定要求+1的方式去,而不是做你自己#74632! – DevSolar

+0

@DevSolar,aw cmon,任何機會推出自己的解析器,而不是做更高效的事情是一個很好的! (臉頰上的舌頭) –

+1

如果你想要一個選項列表,你應該編輯你的問題來說。現在,正確的答案是'不,沒有標準方式':) – gnud

回答

13

嘗試libconfig

處理結構化配置文件,一個簡單的庫,像這樣的:test.cfg。這種文件格式比XML更緊湊,可讀性更強。與XML不同,它是類型感知的,所以不需要在應用程序代碼中進行字符串解析。

Libconfig非常緊湊 - 只是expat XML解析器庫大小的一小部分。這使其非常適合手持設備等內存受限的系統。

該庫包含C和C++語言的綁定。它適用於POSIX兼容UNIX和類UNIX系統(GNU/Linux,Mac OS X,Solaris,FreeBSD),Android和Windows(2000,XP和更高版本)...

+1

看來libconfig是看着它的簡單和小尺寸的正確chice。非常感謝。 – Kangkan

10

不,沒有一個標準的方法。我很抱歉,但這可能是最準確的答案:)

雖然你可以看看這個list of Linux configuration file libraries。這可能會有所幫助。

+2

但是最沒有幫助的一個...... – amarillion

+3

有趣的是OP如何要求*標準*方法,得到7 *個不同的*建議(所有模式都改變了)以及一個說有*沒有標準*的答案被修改下來。 –

+0

這在技術上是正確的答案。 –

7

如果你可以使用(優秀,在任何基於C-應用程序)glib ,它有一個key-value file parser那適用於.ini格式的文件。當然,你也可以訪問glib中的各種(非常好的)數據結構,「免費」。

4

有更新iniparser的叉子在ccan,原來的作者多年來一直沒能引起足夠的重視。免責聲明 - 我維護它。

此外,iniparser包含一個非常有用的字典。

2

我不建議在提示XML時提出完全不同的建議,但libexpat非常簡單,但確實使用XML。

我得出這個結論,因爲我的問題和你一樣,但是後來我意識到這個項目已經有libexpat鏈接了 - 我應該使用它。

3

如果你需要一個快速的和小的代碼只是讀取配置文件,我建議inih

它加載配置文件中的內容只有一次,解析內容,並要求每個鍵/值對一個回調函數。

真的很小。它也可以用於嵌入式系統。

相關問題