X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=guestfs.pod;h=3aa806abd9c2c8c77edd9562da377f2d6ff4e5c3;hp=bfd472e4959cc1eb175e4848296e118768926205;hb=5f9be62e68b120f51c948404e7f0cf3430962c68;hpb=c2cbf9cd082e2cca69481e31ebd9bafda879fa22 diff --git a/guestfs.pod b/guestfs.pod index bfd472e..3aa806a 100644 --- a/guestfs.pod +++ b/guestfs.pod @@ -7,7 +7,7 @@ guestfs - Library for accessing and modifying virtual machine images =head1 SYNOPSIS #include - + guestfs_h *handle = guestfs_create (); guestfs_add_drive (handle, "guest.img"); guestfs_launch (handle); @@ -60,35 +60,37 @@ and finally closing the handle. So the general structure of all libguestfs-using programs looks like this: guestfs_h *handle = guestfs_create (); - + /* Call guestfs_add_drive additional times if there are * multiple disk images. */ guestfs_add_drive (handle, "guest.img"); - + /* Most manipulation calls won't work until you've launched * the handle. You have to do this _after_ adding drives * and _before_ other commands. */ guestfs_launch (handle); - + /* Now you can examine what partitions, LVs etc are available. */ char **partitions = guestfs_list_partitions (handle); char **logvols = guestfs_lvs (handle); - + /* To access a filesystem in the image, you must mount it. */ guestfs_mount (handle, "/dev/sda1", "/"); - - /* Now you can perform filesystem actions on the guest disk image. */ + + /* Now you can perform filesystem actions on the guest + * disk image. + */ guestfs_touch (handle, "/hello"); - + /* You only need to call guestfs_sync if you have made * changes to the guest image. */ guestfs_sync (handle); - + /* Close the handle. */ guestfs_close (handle); @@ -253,7 +255,7 @@ It's often the case that you want to write a file or files to the disk image. For small, single files, use C. This call -currently contains a bug which limited the call to plain text files +currently contains a bug which limits the call to plain text files (not containing ASCII NUL characters). To upload a single file, use C. This call has no @@ -417,6 +419,60 @@ yourself, and then pass them to C functions. See also the programs L, L and L for more help on this issue. +=head2 USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES + +Although we don't want to discourage you from using the C API, we will +mention here that the same API is also available in other languages. + +The API is broadly identical in all supported languages. As an +example, in Python the handle itself is replaced by an object, but we +don't try to "object orientify" any other parts of the API. + +=over 4 + +=item B + +You can use the I header file from C++ programs. The C++ +API is identical to the C API. + +=item B + +This is the only language binding that is incomplete. Only calls +which return simple integers have been bound in Haskell, and we are +looking for help to complete this binding. + +=item B + +Full documentation is contained in the Javadoc which is distributed +with libguestfs. + +=item B + +For documentation see the file C. + +=item B + +For documentation see L. + +=item B + +For documentation do: + + $ python + >>> import guestfs + >>> help (guestfs) + +=item B + +Use the Guestfs module. There is no Ruby-specific documentation, but +you can find examples written in Ruby in the libguestfs source. + +=item B + +For documentation see L. + +=back + =head1 CONNECTION MANAGEMENT =head2 guestfs_h *