guestfs-ocaml(3) | Virtualization Support | guestfs-ocaml(3) |
guestfs-ocaml — як використовувати libguestfs з OCaml
Стиль Module:
let g = Guestfs.create () in Guestfs.add_drive_opts g ~format:"raw" ~readonly:true "disk.img"; Guestfs.launch g;
Об’єктно-орієнтований стиль:
let g = new Guestfs.guestfs () in g#add_drive_opts ~format:"raw" ~readonly:true "disk.img"; g#launch (); ocamlfind opt prog.ml -package guestfs -linkpkg -o prog or: ocamlopt -I +guestfs mlguestfs.cmxa prog.ml -o prog
На цій сторінці підручника наведено документацію щодо викликів libguestfs з коду мовою програмування OCaml. На сторінці задокументовано відмінності від програмного інтерфейсу C та подано декілька прикладів. Якщо ви не дуже знайомі із користуванням libguestfs, вам також слід прочитати підручник з guestfs(3).
Існує два різних стилі програмування, підтримку яких передбачено у прив'язках до OCaml. Ви можете скористатися модульним стилем, де кожну функцію C буде прив'язано до функції OCaml:
int guestfs_set_verbose (guestfs_h *g, int flag);
перетворюється на:
val Guestfs.set_verbose : Guestfs.t -> bool -> unit
Крім того, ви можете скористатися об'єктно-орієнтованим стилем, викликаючи методи на класі "Guestfs.guestfs":
method set_verbose : bool -> unit
Код у об'єктно-орієнтованому стилі, зазвичай, є коротшим, а незначна втрата швидкодії є непомітною у загальному потоці виконання функцій libguestfs.
Дескриптор закривається, коли його знищує збирач сміття. Оскільки дескриптори libguestfs містять багато від стану, їх також можна закривати (і отже, звільняти) явним чином, викликаючи "Guestfs.close" або метод "#close".
Помилки функцій libguestfs пов'язуються із виключенням "Guestfs.Error". Це виключення має єдиний параметр, яким є повідомлення щодо помилки (рядок).
Спроба виклику будь-якої функції чи методу для закритого дескриптора призводить до "Guestfs.Handle_closed". Єдиним параметром цього виключення є назва функції, яку було викликано.
@CREATE_DISK@
@INSPECT_VM@
@DEBUG_LOGGING@
guestfs(3), guestfs-examples(3), guestfs-erlang(3), guestfs-gobject(3), guestfs-golang(3), guestfs-java(3), guestfs-lua(3), guestfs-perl(3), guestfs-python(3), guestfs-recipes(1), guestfs-ruby(3), http://libguestfs.org/, http://caml.inria.fr/.
Richard W.M. Jones ("rjones at redhat dot com")
Copyright (C) 2010-2023 Red Hat Inc.
To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
When reporting a bug, please supply:
2024-01-05 | libguestfs-1.52.0 |