我有几个我想开始的爱好 C 编程项目。我正在寻找一个具有自由许可证的开源库(我想要信用,但几乎任何人都可以使用)。该库需要比 C 标准库和一些可移植的线程原语更好的字符串。
3 回答
我认为 glib 通常优于 apr。glib 有更多的数据结构作为可移植库。例如哈希表、各种列表、队列、堆栈、动态数组,也用于参数解析,文件 io 也有它自己的包装器,并且内存管理很容易修改。例如,您可以轻松地使 glib 使用 Boehm Weisser GC,这是 AFAIKT 从未使用过的,或者使用 Apache 很容易。我会决定有点不同。如果你需要一个更有用的数据结构库,glib 是一个更好的装备。如果涉及 GUI 的东西,那么 libapr 什么都没有,而 glib 有 gdk/gtk+ 和很多 gnome 的东西,如果你喜欢的话。
但是,如果涉及到网络方面的东西,libapr 肯定比 glib 更有优势。
所以我的建议是
- 桌面编程:使用 GTK+ 和 glib。
- 网络资料:使用 apr,但请放心 glib 也有所有这些可移植的资料。
我会选择 APR。APR 更擅长 Unix/Windows 的可移植性(作为一个专用的可移植库),GLib 传统上更面向 Unix。APR 是一个比 GLib 更大的库,其中包含许多有用的东西(哈希表、参数解析、文件 I/O 东西、内存管理、共享内存例程、信号处理等)。
您是否有理由不想使用 c++ stl?即使您正在编写没有类的“c 风格”代码,您也可以使用 c++ 字符串和数据结构。
当然,坚持使用 C 语言有很多正当理由。如果是这样的话,我会支持 glib 的建议。APR 更像是一个可移植层而不是实用程序库。