0_00_GLib库入门与实践_前言

GLib库是用C语言实现的一个通用的、可移植的实用程序库,由GNOME的GTK小组开发并维护,最早用在GTK+程序开发上,后来被越来越多的程序使用。刚开始,GLib库叫GLib-1.0,形成于约1995到1997年间,彼时提供的功能还比较少,后来于2002年升级到GLib-2.0,提供的功能也越来越丰富。

GLib由三大部分组成——GLib、GObject和GIO,GLib是一套C语言工具集,GObject是基于C语言实现的对象系统,GIO是基于GObject的一套简单易用的VFS接口。本系列文章只介绍GLib部分,暂不涉及GObject和GIO。

GLib包含了字符串操作、文件操作、数据校验、编解码、字符集转换、随机数生成器、命令行解析器、xml解析器、正则表达式、单链表、双链表、 数组、指针数组、双端队列、哈希表、平衡二叉树、N维树、泛型、主循环、多线程、线程池、异步队列、内存分配、内存片段、错误系统、测试框架等等一系列功能,称得上是C语言开发人员的军刀,值得研究。

本系列文章基于GLib-2.0官方帮助文档撰写,但调整了一些目录顺序,删减了一些不常用到的功能。其中官方帮助文档包括概述、基础、核心应用支持、通用工具集、数据类型五部分,由于核心应用支持用到了其他部分,因此把核心应用支持放在了最后介绍。本系列文章在介绍GLib库时,每章内容相对独立,侧重从使用出发,演示或讲解如何调用这些函数实现相应功能,若非为了帮助理解所讲知识,则会尽量避免介绍源码及底层实现原理,这样可以快速上手掌握GLib库的用法,更好地将其用到学习或工作中。

本系列文章包括概述、基础、通用工具集、数据类型、核心应用支持和附录六大部分。

  • 概述部分包括GLib库简介、源码代码目录结构简介、官方帮助文档简介、如何编译GLib库,如何编写基于GLib库的程序。
  • 基础部分包括GLib库版本与兼容性、基本数据类型、常用宏、带溢出检查的整型运算、数学常数、原子操作。
  • 通用工具集部分包括测试框架、字符串处理函数、文件操作、计时器、GLob模式匹配、正则、Base64加解密、数据校验、随机数生成器、字符集、字符编码及国际化、时间、日期及时区、命令行解析器、xml解析器、Key-Value风格文件解析器、书签解析、hook函数及进程创建。
  • 数据类型部分包括字符串、数组、链表、队列、哈希表、二叉树、序列、夸克、数据列表、数据集、泛型等常用C语言数据结构。
  • 核心应用支持部分包括错误、告警和断言、日志和调试、线程、线程池、异步队列、模块动态加载、主循环、IO通道、内存分配、内存切片等相对独立而又复杂的核心功能。
  • 附录部分包括需要理解以上内容的一些补充知识如源代码目录结构介绍、C语言构建工具比较、常用C/C++测试框架介绍。

在介绍通用工具集、数据类型和核心应用支持三部分时,每一章包括简介、数据结构、函数列表、函数功能分类、函数功能说明及综合演示五个小节,有些章还包括一个专题小节。

本系列文章基于GLib-2.56.4撰写,所有例子均在机上编译运行通过,大部分例子都附带运行结果。如果使用的版本比2.56.4旧,可能会在编译时找不到函数,因为该函数在旧版本上尚未实现,如果使用的版本比2.56.4新,一般不会有问题,但可能会有“Deprecated”的告警,该告警表示函数已经被弃用,以后应避免再使用此函数。建议使用GLib-2.56.4编译本系列文章附带的源码及阅读相关章节,等熟悉以后再切换版本。

本系列文章附带例子的所有源码(非GLib-2.0库源码),源码组织形式及获取方式见附录A_本系列文章附带源码简介一章。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值