mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
They will be removed in libguestfs 1.58 (the next but one version). Currently they don't actually compile. The larger problem is that they don't handle 64 bit quantities properly (using floats instead), meaning that any disk size or offset above a certain size will be improperly passed through the API, usually rounded to the nearest 53 bits.
102 lines
2.4 KiB
Plaintext
102 lines
2.4 KiB
Plaintext
=head1 NAME
|
|
|
|
guestfs-ocaml - How to use libguestfs from OCaml
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
Module style:
|
|
|
|
let g = Guestfs.create () in
|
|
Guestfs.add_drive_opts g ~format:"raw" ~readonly:true "disk.img";
|
|
Guestfs.launch g;
|
|
|
|
Object-oriented style:
|
|
|
|
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
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This manual page documents how to call libguestfs from the OCaml
|
|
programming language. This page just documents the differences from
|
|
the C API and gives some examples. If you are not familiar with using
|
|
libguestfs, you also need to read L<guestfs(3)>.
|
|
|
|
=head2 PROGRAMMING STYLES
|
|
|
|
There are two different programming styles supported by the OCaml
|
|
bindings. You can use a module style, with each C function mapped to
|
|
an OCaml function:
|
|
|
|
int guestfs_set_verbose (guestfs_h *g, int flag);
|
|
|
|
becomes:
|
|
|
|
val Guestfs.set_verbose : Guestfs.t -> bool -> unit
|
|
|
|
Alternately you can use an object-oriented style, calling methods
|
|
on the class C<Guestfs.guestfs>:
|
|
|
|
method set_verbose : bool -> unit
|
|
|
|
The object-oriented style is usually briefer, and the minor performance
|
|
penalty isn't noticeable in the general overhead of performing
|
|
libguestfs functions.
|
|
|
|
=head2 CLOSING THE HANDLE
|
|
|
|
The handle is closed when it is reaped by the garbage collector.
|
|
Because libguestfs handles include a lot of state, it is also
|
|
possible to close (and hence free) them explicitly by calling
|
|
C<Guestfs.close> or the C<#close> method.
|
|
|
|
=head2 EXCEPTIONS
|
|
|
|
Errors from libguestfs functions are mapped into the C<Guestfs.Error>
|
|
exception. This has a single parameter which is the error message (a
|
|
string).
|
|
|
|
Calling any function/method on a closed handle raises
|
|
C<Guestfs.Handle_closed>. The single parameter is the name of the
|
|
function that you called.
|
|
|
|
=head1 EXAMPLE: CREATE A DISK IMAGE
|
|
|
|
@CREATE_DISK@
|
|
|
|
=head1 EXAMPLE: INSPECT A VIRTUAL MACHINE DISK IMAGE
|
|
|
|
@INSPECT_VM@
|
|
|
|
=head1 EXAMPLE: ENABLE DEBUGGING AND LOGGING
|
|
|
|
@DEBUG_LOGGING@
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<guestfs(3)>,
|
|
L<guestfs-examples(3)>,
|
|
L<guestfs-erlang(3)>,
|
|
L<guestfs-golang(3)>,
|
|
L<guestfs-java(3)>,
|
|
L<guestfs-lua(3)>,
|
|
L<guestfs-perl(3)>,
|
|
L<guestfs-python(3)>,
|
|
L<guestfs-recipes(1)>,
|
|
L<guestfs-ruby(3)>,
|
|
L<http://libguestfs.org/>,
|
|
L<http://caml.inria.fr/>.
|
|
|
|
=head1 AUTHORS
|
|
|
|
Richard W.M. Jones (C<rjones at redhat dot com>)
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright (C) 2010-2025 Red Hat Inc.
|