glibc,glib和gnulib

Tim*_*Tim 30 glibc glib

gnulib glibglibc的强度和功能有什么不同 谢谢!

Ign*_*ams 46

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

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

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

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

  • 实际上,GLib 独立于 GObject,因此除了通常的“这是一种不透明的数据类型”之外,没有类型和对象系统本身。另一方面,GObject 建立在 GLib 之上。 (2认同)

qwr*_*qwr 7

glibcGNU C 库的缩写形式,是 GNU 项目对C 标准库的实现。C 标准库的 API 是在熟悉的头文件中声明的,如<stdio.h><stdlib.h>(有关头文件的完整列表,请参阅维基百科链接)。

POSIX的操作系统API通过提供<unistd.h>主要包装系统调用一样fork喜欢和I / O操作read/ write

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

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

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

GLib 的其他一些特性包括:

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

为什么要使用 GLib 函数?

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

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

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