C 程序工具包-GLib
2013-04-09 12:00:19 阿炯
GLib 是一个包含很多有用的 C 程序的开发包,例如树、哈希、列表等。GLib 之前是属于 GTK 工具包的一部分,现在独立出来成为单独项目。Glibc 是提供系统调用和基本函数的 C 库,比如open, malloc, printf等,所有动态连接的程序都要用到它。因为GLib具有跨平台特性,所以用它编写的程序可以无需进行大幅度修改就可以在其他程序上编译和运行。使用LGPL协议授权。
GLib提供了多种高级的数据结构,如内存块、双向和单向链表、哈希表、动态字符串以及字符串工具(例如词法分析器,字符串切分等)、动态数组,平衡二叉树、n-叉树、键值存储、关系和元组,还有带有缓存的内存管理。Glib还实现了线程相关的函数、多线程编程以及相关的工具,例如:原始变量访问,互斥锁,异步队列,安全内存池,消息传递和日志,钩子函数和计时器,同时消息传递还包含了字节序转换和IO channel
GLib由五个库组成:
GObject –对象系统,包括类型系统GType
Glib
GModule
GThread
GIO
最新版本:2.36
Signal handlers connected with g_signal_connect_object() are now automatically disconnected on target object destruction.
GIO now has kqueue support for GFileMonitor (BSDs and Mac OS).
UNIX signal sources now allow watching SIGUSR1 and SIGUSR2.
In g_get_home_dir(), the $HOME variable is no longer ignored, and taken into consideration in favor of GECOS entries.
GUnixFdSource was added as a new method to add file descriptors to the main loop.
Further new APIs were added.
Many bugs were fixed
最新版本:2.24
本次发布包含一些已知问题修复,5个安全问题漏洞修复,删除一些旧有功能函数,以及新增一些数学函数(nextup*()和 nextdown*())。更多具体改进信息以及Bug修复记录,可查看发行说明。
最新版本:2.31
此版本的重要变更包括引入对 C2X 标准的初始支持、与 DNS 存根解析器(DNS stub resolver)相关的变更、新的 pthread_clockjoin_np() POSIX 线程扩展,以及与时间相关的函数的许多更改等。下面是对这些变更的简单介绍:
GNU C Library 现在支持功能测试宏 _ISOC2X_SOURCE,以启用 ISO C2X 标准草案中的功能。GNU C Library 仅支持该草案标准中的某些功能,并且由于该草案正在积极开发中,因此该宏启用的功能集易于更改。通过 _GNU_SOURCE 或使用"gcc-std=gnu2x"进行编译也可以启用 C2X 的功能。
将结果四舍五入为更窄类型的 <math.h> 函数现在在 <tgmath.h> 中具有相应的类型通用宏,如 TS 18661-1:2014 中所定义以及 TS 18661-3:2015(由 Clarification Request 13 的决议进行了修订)。
添加 pthread_clockjoin_np 函数,从而可以与具有特定时钟的终止线程进行连接。它允许等待 CLOCK_MONOTONIC 和 CLOCK_REALTIME。此函数是 GNU 扩展。
添加了新的语言环境:mnw_MM(Mon 语言为缅甸语)。
如果通过 /etc/resolv.conf 中的 options 指令设置了 trust-ad 选项(或者如果在 _res.options 中设置了 RES_TRUSTAD),则 DNS 存根解析器将有选择地在查询中发送认证数据位(AD, authenticated data)。在这种模式下,名称服务器提供的 AD 位可用于调用 res_search 和相关功能的应用程序。在默认模式下,未在查询中设置 AD 位,而是在响应中自动将其清除,表明缺乏 DNSSEC 验证。因此,名称服务器和它们的网络路径被视为不可信。
项目主页:http://www.gnu.org/software/libc/
GLib提供了多种高级的数据结构,如内存块、双向和单向链表、哈希表、动态字符串以及字符串工具(例如词法分析器,字符串切分等)、动态数组,平衡二叉树、n-叉树、键值存储、关系和元组,还有带有缓存的内存管理。Glib还实现了线程相关的函数、多线程编程以及相关的工具,例如:原始变量访问,互斥锁,异步队列,安全内存池,消息传递和日志,钩子函数和计时器,同时消息传递还包含了字节序转换和IO channel
GLib由五个库组成:
GObject –对象系统,包括类型系统GType
Glib
GModule
GThread
GIO
最新版本:2.36
Signal handlers connected with g_signal_connect_object() are now automatically disconnected on target object destruction.
GIO now has kqueue support for GFileMonitor (BSDs and Mac OS).
UNIX signal sources now allow watching SIGUSR1 and SIGUSR2.
In g_get_home_dir(), the $HOME variable is no longer ignored, and taken into consideration in favor of GECOS entries.
GUnixFdSource was added as a new method to add file descriptors to the main loop.
Further new APIs were added.
Many bugs were fixed
最新版本:2.24
本次发布包含一些已知问题修复,5个安全问题漏洞修复,删除一些旧有功能函数,以及新增一些数学函数(nextup*()和 nextdown*())。更多具体改进信息以及Bug修复记录,可查看发行说明。
最新版本:2.31
此版本的重要变更包括引入对 C2X 标准的初始支持、与 DNS 存根解析器(DNS stub resolver)相关的变更、新的 pthread_clockjoin_np() POSIX 线程扩展,以及与时间相关的函数的许多更改等。下面是对这些变更的简单介绍:
GNU C Library 现在支持功能测试宏 _ISOC2X_SOURCE,以启用 ISO C2X 标准草案中的功能。GNU C Library 仅支持该草案标准中的某些功能,并且由于该草案正在积极开发中,因此该宏启用的功能集易于更改。通过 _GNU_SOURCE 或使用"gcc-std=gnu2x"进行编译也可以启用 C2X 的功能。
将结果四舍五入为更窄类型的 <math.h> 函数现在在 <tgmath.h> 中具有相应的类型通用宏,如 TS 18661-1:2014 中所定义以及 TS 18661-3:2015(由 Clarification Request 13 的决议进行了修订)。
添加 pthread_clockjoin_np 函数,从而可以与具有特定时钟的终止线程进行连接。它允许等待 CLOCK_MONOTONIC 和 CLOCK_REALTIME。此函数是 GNU 扩展。
添加了新的语言环境:mnw_MM(Mon 语言为缅甸语)。
如果通过 /etc/resolv.conf 中的 options 指令设置了 trust-ad 选项(或者如果在 _res.options 中设置了 RES_TRUSTAD),则 DNS 存根解析器将有选择地在查询中发送认证数据位(AD, authenticated data)。在这种模式下,名称服务器提供的 AD 位可用于调用 res_search 和相关功能的应用程序。在默认模式下,未在查询中设置 AD 位,而是在响应中自动将其清除,表明缺乏 DNSSEC 验证。因此,名称服务器和它们的网络路径被视为不可信。
项目主页:http://www.gnu.org/software/libc/