GLib学习笔记(3)

时间:2022-05-01 03:13:39

工具

这部分内容主要是提供了一些公共的API或者是类,帮助完成各种不同的功能。

3.1 字符串操作函数

g_strxxx等系列函数,方便完成字符串操作,有点像C/C++里边的函数。

这个和CString还不是同一类东西。CString是字符串类,可能更加方便。

3.2 字符集转换函数

包括UTF8UNICODE等转换的函数。

值得注意的是文件名的字符集转换函数,有:

l           g_filename_from_uri,g_filename_to_utf8

因为glib自己用的是UTF8类型,而OS用的可能不同。

3.3 UNICODE转换/Base64字符编码

不说了。

3.4 校验和

GLIB确实很全,竟然提供了MD5等校验和的封装。

这几个函数的使用有要注意的:

l         一旦调用g_checksum_get_string/digest后,校验和对象就不能再使用了,只能重设后才能再度校验。

3.5 国际化函数

不知所云,从没接触过类似“应用场景”。

3.6 日期和时间函数

FT,这个类别超多。不知道为啥会整这么多东西出来。有需要再研究吧。

3.7 随机数

生成随机数用的API

3.8 钩子函数管理

不知道为啥需要这个,难道在LINUX很多这么做的吗?

用一个GHookList管理钩子函数对象的集合,钩子函数对象用GHook表示。

终于明白Marshaller(列集函数)的意思了,实际和GObject有关。它的目的很简单,在不同语言中,统一用GValue来表示数据类型,不同语言的调用都统一到GValue中来做接口,Marshaller函数就是把相对于特定语言的类型转换成GVALUE类型,然后在函数中传递。这么说的话,一定还有一个解列函数。

3.9 混杂函数

这个混杂函数集合其实包含一些很有用的函数。

比如取app_name,user_name,setenv,getenv

3.10 文本扫描/自动完成

不说了。

3.11 时钟函数

GTimer对象。类似GetTickCount之流。

3.12 子进程创建

         不说了

3.13 文件操作

不是IO操作,而是创建文件,文件夹,获取文件大小,删除文件等函数。

3.14 URI/主机名/shell相关

不说了。

其中shell相关的还真是没搞明白想干什么。

3.15 命令行选项分析器

这个比较方便,自己写得话会非常麻烦。

GOptionContext等。

3.16 模式匹配/Perl相关/XML相关

不说了。

3.17 -值解析

类似.ini解析的函数封装。非常好。

3.18 书签/测试框架/Windows兼容函数

不说了。