glibc、glib 和 gnulib

发布于 2024-08-21 14:43:30 字数 229 浏览 6 评论 0原文

gnulib glibglibc 谢谢!

what are differences in the strength and features in gnulib glib and glibc
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雨落□心尘 2024-08-28 14:43:30

glibc 是一个核心 C 运行时库。它提供了诸如 printf(3)fopen(3) 之类的功能。

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

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

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

glibc is a core C runtime library. It provides things like printf(3) and fopen(3).

glib is an object-based event loop and utility library written in C.

gnulib is a library that provides an adapter from the POSIX API to the native API.

All three are used for completely different tasks.

看春风乍起 2024-08-28 14:43:30

glibcGNU C Library 的缩写形式,是 GNU 项目对 C 标准库。 C 标准库的 API 在熟悉的头文件中声明,例如 (有关完整列表,请参阅 Wikipedia 链接)头文件)。

POSIX操作系统API是通过提供的,主要封装了fork等系统调用和read/等I/O操作

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

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

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

GLib 的一些其他功能包括:

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

为什么使用 GLib 函数?

Gnulib,也称为GNU 可移植性库,是一个 GNU 代码集合,用于协助编写可移植代码。来自手册

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

许多函数都实现了可移植性解决方法用于 ISO C 和 POSIX 函数。

glibc, the shortened form of GNU C Library, is the GNU Project's implementation of the C standard library. The API of the C standard library is declared in familiar header files like <stdio.h> and <stdlib.h> (see the Wikipedia link for a full list of header files).

The POSIX operating system API is provided through <unistd.h> which mainly wraps system calls like fork and I/O operations like read/write.

GLib is a bundle of system libraries written in C and developed by GNOME (part of the GNU Project). Quoting from Wikipedia (without source unfortunately)

GLib provides advanced data structures, such as memory chunks, doubly and singly linked lists, hash tables, dynamic strings and string utilities, such as a lexical scanner, string chunks (groups of strings), dynamic arrays, balanced binary trees, N-ary trees, quarks (a two-way association of a string and a unique integer identifier), keyed data lists, relations, and tuples. Caches provide memory management.

GLib implements functions that provide threads, thread programming and related facilities such as primitive variable access, mutexes, asynchronous queues, secure memory pools, message passing and logging, hook functions (callback registering) and timers. GLib also includes message passing facilities such as byte order conversion and I/O channels.

Some other features of GLib include:

  • standard macros
  • warnings and assertions
  • dynamic loading of modules

Why use GLib functions?

Gnulib, also called the GNU Portability Library, is a collection of GNU code to assist with writing portable code. From the manual:

Gnulib is intended to be the canonical source for most of the important “portability” and/or common files for GNU projects. These are files intended to be shared at the source level; Gnulib is not a typical library meant to be installed and linked against. Thus, unlike most projects, Gnulib does not normally generate a source tarball distribution; instead, developers grab modules directly from the source repository.

Many of the functions implement portability workarounds for ISO C and POSIX functions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文