glibc,glib和gnulib

时间:2010-02-10 20:28:58

标签: glibc glib

gnulib glibglibc的优势和功能有何不同 谢谢!

2 个答案:

答案 0 :(得分:42)

glibc是核心C运行时库。它提供了printf(3)fopen(3)等内容。

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

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

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

答案 1 :(得分:2)

glibc GNU C库的缩写,是GNU工程对C standard library的实现。 C标准库的API在<stdio.h><stdlib.h>之类的熟悉的头文件中声明(有关头文件的完整列表,请参见Wikipedia链接)。

POSIX操作系统API通过<unistd.h>提供,它主要包装fork之类的系统调用和read / write之类的I / O操作。

GLib 是由GNOME(GNU工程的一部分)开发的用C编写的系统库的捆绑包。引自维基百科(不幸的是没有来源)

  

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

     

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

     

GLib的其他一些功能包括:

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

Why use GLib functions?

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

  

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

许多功能实现portability workarounds for ISO C and POSIX functions