2 回答
glibc
是一个核心 C 运行时库。printf(3)
它提供了和之类的东西fopen(3)
。
glib
是用 C 编写的基于对象的事件循环和实用程序库。
gnulib
是一个提供从 POSIX API 到本机 API 的适配器的库。
这三个都用于完全不同的任务。
glibc是GNU C Library的缩写形式,是 GNU 项目对C 标准库的实现。C 标准库的 API 在熟悉的头文件中声明,例如<stdio.h>
和<stdlib.h>
(请参阅 Wikipedia 链接以获取头文件的完整列表)。
提供 POSIX 操作系统 API <unistd.h>
,主要通过它来包装类似 / 的系统调用和fork
I/O 操作。read
write
GLib是一组用 C 语言编写并由 GNOME(GNU 项目的一部分)开发的系统库。引用维基百科(不幸的是没有来源)
GLib 提供高级数据结构,例如内存块、双向和单向链表、哈希表、动态字符串和字符串实用程序,例如词法扫描器、字符串块(字符串组)、动态数组、平衡二叉树、N-ary树、夸克(字符串和唯一整数标识符的双向关联)、键控数据列表、关系和元组。缓存提供内存管理。
GLib 实现了提供线程、线程编程和相关设施的函数,例如原始变量访问、互斥体、异步队列、安全内存池、消息传递和日志记录、挂钩函数(回调注册)和计时器。GLib 还包括消息传递工具,例如字节顺序转换和 I/O 通道。
GLib 的其他一些功能包括:
- 标准宏
- 警告和断言
- 动态加载模块
Gnulib,也称为GNU Portability Library,是 GNU 代码的集合,用于帮助编写可移植代码。从手册:
Gnulib 旨在成为 GNU 项目的大多数重要“可移植性”和/或通用文件的规范源。这些是旨在在源级别共享的文件;Gnulib 不是要安装和链接的典型库。因此,与大多数项目不同,Gnulib 通常不会生成源代码 tarball 分发。相反,开发人员直接从源存储库中获取模块。
许多函数实现了 ISO C 和 POSIX 函数的可移植性变通方法。