Использование GLib

немного wiki

GLib — низкоуровневая библиотека, расширяющая возможности, предоставляемые стандартной библиотекой libc языка C.

GLib предоставляет следующие возможности:

  • большой набор базовых и производных типов данных;

  • макросы и развитый механизм отладочных сообщений;

  • строковые функции;

  • функции для преобразования кодировок и поддержки юникода;

  • встроенные макросы gettext для интернационализации;

  • средства для работы с динамической памятью;

  • средства для динамической загрузки модулей;

  • атомарные операции;

  • программные потоки и средства их синхронизации;

  • порождение новых процессов;

  • таймеры, функции для работы с датой и временем;

  • генератор псевдо-случайных чисел;

  • универсальный лексический сканер;

  • синтаксический анализатор параметров командной строки;

  • синтаксический анализатор подмножества данных типа XML;

  • синтаксический анализатор .ini-подобных конфигурационных файлов;

  • средства ввода-вывода;

  • Shell-related Utilities;

  • синтаксический анализатор файлов, содержащих закладки;

  • средства работы с регулярными выражениями типа Glob.

от меня

Так как GLib является базовой(Core) библиотекой Vala то все её возможности уже реализованы в синтаксисе языка(например ключевое слово async за кулисами создает GTask) однако если вам понадобилось использовать какие либо не задокументированные на valadoc вещи, то это гайд как это сделать руководствуясь только манами GLib (которые написаны на си)

Сам гайд

GLib включает множество утилит, в том числе оболочки для большинства стандартных функций libc и множество другое. Эти инструменты доступны на всех платформах Vala, даже если они не совместимы с POSIX. За полным описанием GLib обратитесь к GLib Reference Manual(Перевод которого у меня тоже имеется). Этот справочник написан по С интерфейсу, но можно легко понять, как его использовать для Vala.

При использовании функций GLib в Vala действуют следующие соглашения об именах:

C API

Vala

Example

g_topic_foobar()

GLib.Topic.foobar()

GLib.Path.get_basename()

Типы GLib можно использовать сходным образом:

Создать экземпляр с

Вызвать член объекта с

GLib.Foo foo = new GLib.Foo();

foo.bar();

Работа с файлами

За примерами гибкого файлового ввода-вывода и работы с файлами обратитесь в Vala/GIOSamples.

Вы можете так же воспользоваться FileUtils.get_contents, чтобы загрузить файл в строку.

string content;
FileUtils.get_contents("file.vala", out content);

Last updated