33

你能推荐我可以在 C 环境中使用的同行评审库(比如 Boost for C++)吗?提供散列、线程、进程间通信、列表、智能内存管理的东西……

环境是嵌入式系统,不是很小的系统,也不是PC!

4

6 回答 6

15

我也为GLib +1 。另外,它也有自己的线程 API,所以如果你不想学习 pthreads,你不必学习。

不确定C中是否存在“智能内存管理”之类的东西,当你没有析构函数的安全网和对操作符的控制时,这并不容易。但是,同样,GLib 有大量面向内存的数据结构和真正让生活更轻松的东西。

不,我不在 GLib 团队,但我真的很喜欢它。:)

于 2008-10-17T19:18:04.790 回答
7

查看Apache Portable Runtime (APR)项目。

它的一些特点:

  • 内存管理 API
  • 线程,互斥体
  • 文件输入/输出
  • 原子操作
  • 哈希表、数组
  • 网络套接字和协议
  • 共享内存,mmap

更不用说它的便携性了。

于 2010-07-28T19:37:26.863 回答
6

我不确定你是否会找到一个涵盖所有这些的单一库......但你可以查看glibpthreads来涵盖其中的大部分内容。

于 2008-10-17T19:09:57.660 回答
5

看看Boehm GC,它是一种广泛使用的 C(或 C++)保守垃圾收集器,就智能内存管理而言,它可能满足您的需求。

于 2008-10-17T19:30:55.713 回答
2

我也会加入 GLib 的潮流。请记住,C 没有为复杂的数据结构提供任何语法糖,因此 GLib 中有很多强制转换和长函数名,但它确实做得很好而且很有效,只是增加了一点冗长!

于 2008-10-17T19:19:07.860 回答
2

关于 Glib 的使用。

您可能可以获取所需的内容并进行交叉编译。因此,如果您只需要线程包 - 只需编译它,不要拿走所有东西。

我正在用 Python VM 做同样的事情。PyMite 适合微控制器,并不使用所有功能。

于 2008-10-17T19:47:44.900 回答