35

gnulib glibglibc在强度和功能上有什么区别 谢谢!

4

2 回答 2

53

glibc是一个核心 C 运行时库。printf(3)它提供了和之类的东西fopen(3)

glib是用 C 编写的基于对象的事件循环和实用程序库。

gnulib是一个提供从 POSIX API 到本机 API 的适配器的库。

这三个都用于完全不同的任务。

于 2010-02-10T20:33:51.843 回答
10

glibc是GNU C Library的缩写形式,是 GNU 项目对C 标准库的实现。C 标准库的 API 在熟悉的头文件中声明,例如<stdio.h><stdlib.h>(请参阅 Wikipedia 链接以获取头文件的完整列表)。

提供 POSIX 操作系统 API <unistd.h>,主要通过它来包装类似 / 的系统调用和forkI/O 操作。readwrite

GLib是一组用 C 语言编写并由 GNOME(GNU 项目的一部分)开发的系统库。引用维基百科(不幸的是没有来源)

GLib 提供高级数据结构,例如内存块、双向和单向链表、哈希表、动态字符串和字符串实用程序,例如词法扫描器、字符串块(字符串组)、动态数组、平衡二叉树、N-ary树、夸克(字符串和唯一整数标识符的双向关联)、键控数据列表、关系和元组。缓存提供内存管理。

GLib 实现了提供线程、线程编程和相关设施的函数,例如原始变量访问、互斥体、异步队列、安全内存池、消息传递和日志记录、挂钩函数(回调注册)和计时器。GLib 还包括消息传递工具,例如字节顺序转换和 I/O 通道。

GLib 的其他一些功能包括:

  • 标准宏
  • 警告和断言
  • 动态加载模块

为什么使用 GLib 函数?

Gnulib,也称为GNU Portability Library,是 GNU 代码的集合,用于帮助编写可移植代码。从手册

Gnulib 旨在成为 GNU 项目的大多数重要“可移植性”和/或通用文件的规范源。这些是旨在在源级别共享的文件;Gnulib 不是要安装和链接的典型库。因此,与大多数项目不同,Gnulib 通常不会生成源代码 tarball 分发。相反,开发人员直接从源存储库中获取模块。

许多函数实现了 ISO C 和 POSIX 函数的可移植性变通方法

于 2019-07-01T21:11:53.703 回答