【问题标题】:glibc, glib and gnulibglibc、glib 和 gnulib
【发布时间】:2011-01-15 10:57:00
【问题描述】:

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

【问题讨论】:

    标签: glibc glib


    【解决方案1】:

    glibc 是一个核心 C 运行时库。它提供printf(3)fopen(3) 之类的内容。

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

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

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

    【讨论】:

    • 实际上,GLib 是独立于 GObject 的,因此除了通常的“这是一个不透明的数据类型”之外,它本身没有类型和对象系统。另一方面,GObject 建立在 GLib 之上。
    【解决方案2】:

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

    POSIX操作系统API是通过<unistd.h>提供的,主要封装了fork等系统调用和read/write等I/O操作。

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

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

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

    GLib 的其他一些功能包括:

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

    Why use GLib functions?

    Gnulib,也称为 GNU Portability Library,是 GNU 代码的集合,可帮助编写可移植代码。来自the manual

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

    许多函数都实现了portability workarounds for ISO C and POSIX functions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-07
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      相关资源
      最近更新 更多