2008-11-17 76 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比实用程序库更像是一个可移植层。