2008-11-17 56 views
19

我有幾個嗜好C編程項目,我想開始。我正在尋找一個擁有自由許可證的開放源代碼庫(我想要信用,但幾乎任何人都可以使用)。該庫需要比C標準庫和一些可移植的線程原語具有更好的字符串。GLib v APR的每個利弊

我在考慮GLibAPR。你有什麼實際經驗?哪個更好的基礎C庫?是否還有其他圖書館充斥着同樣的利基?

回答

12

我認爲glib總體上優於apr。 glib擁有更多的數據結構作爲可移植的庫。例如哈希表,所有類型的列表,隊列,堆棧,動態數組,也用於參數解析,文件io也有它自己的包裝,而且內存管理也很容易修改。例如,您可以輕鬆使glib使用Boehm Weisser GC,這是AFAIKT從未用Apache或Apache做過的簡單工作。我會決定有點不同。如果你需要一個更有用的數據結構庫,glib是一個更好的裝備。如果說GUI的東西比libapr什麼都沒有,而glib有gdk/gtk +和很多gnome的東西,如果你喜歡的話。

但是,如果涉及到網絡的東西,libapr肯定比glib有優勢。

所以我的建議是

  • 桌面編程:使用GTK +和油腔滑調。
  • 網絡的東西:使用apr,但要放心glib確實也有所有這些便攜式的東西。
7

我會去APR。 APR在可移植性Unix/Windows(作爲專用的可移植性庫)方面更好,GLib傳統上更多是面向Unix的。 APR是一個比GLib更大的庫,它有很多有用的東西(哈希表,參數解析,文件I/O東西,內存管理,共享內存例程,信號處理等)。

+1

順便說一下,glib包含gio,它是一個面向流的體系結構的可移植I/O。我不認爲apr比glib大。 – lethalman 2011-08-03 20:57:03

+2

那麼,今天是什麼樣子?哪個更大?這個答案仍然有效嗎? – einpoklum 2013-12-21 21:06:17

1

是否有你不想使用C++ stl的原因?即使你正在編寫沒有類的「c風格」代碼,你也可以使用C++字符串和數據結構。

當然,有很多有效的理由可以堅持C.如果是這樣的話,我會第二次推薦glib。 APR比實用程序庫更像是一個可移植層。