summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2010-05-18 23:20:30 +0100
committerRichard Jones <rjones@redhat.com>2010-05-20 10:30:12 +0100
commit1214b321621e7750c67423ecf4d9528809e1eeac (patch)
tree4f53875a21079a80b8b78626968fca1cf8aab2ff /src
parent3920ad95f6b2db8fbf20aa26692877a09070cb04 (diff)
downloadlibguestfs-1214b321621e7750c67423ecf4d9528809e1eeac.tar.gz
libguestfs-1214b321621e7750c67423ecf4d9528809e1eeac.tar.xz
libguestfs-1214b321621e7750c67423ecf4d9528809e1eeac.zip
New API: Implement pwrite system call (partial fix for RHBZ#592883).
Diffstat (limited to 'src')
-rw-r--r--src/MAX_PROC_NR2
-rwxr-xr-xsrc/generator.ml30
2 files changed, 30 insertions, 2 deletions
diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR
index 5d165ff2..e06108c0 100644
--- a/src/MAX_PROC_NR
+++ b/src/MAX_PROC_NR
@@ -1 +1 @@
-246
+247
diff --git a/src/generator.ml b/src/generator.ml
index dfab8dcd..32a81400 100755
--- a/src/generator.ml
+++ b/src/generator.ml
@@ -4062,7 +4062,9 @@ This command lets you read part of a file. It reads C<count>
bytes of the file, starting at C<offset>, from file C<path>.
This may read fewer bytes than requested. For further details
-see the L<pread(2)> system call.");
+see the L<pread(2)> system call.
+
+See also C<guestfs_pwrite>.");
("part_init", (RErr, [Device "device"; String "parttype"]), 208, [],
[InitEmpty, Always, TestRun (
@@ -4658,6 +4660,32 @@ to ensure the length of the file is exactly C<len> bytes.");
This call creates a file called C<path>. The content of the
file is the string C<content> (which can contain any 8 bit data).");
+ ("pwrite", (RInt "nbytes", [Pathname "path"; BufferIn "content"; Int64 "offset"]), 247, [ProtocolLimitWarning],
+ [InitBasicFS, Always, TestOutput (
+ [["write"; "/new"; "new file contents"];
+ ["pwrite"; "/new"; "data"; "4"];
+ ["cat"; "/new"]], "new data contents");
+ InitBasicFS, Always, TestOutput (
+ [["write"; "/new"; "new file contents"];
+ ["pwrite"; "/new"; "is extended"; "9"];
+ ["cat"; "/new"]], "new file is extended");
+ InitBasicFS, Always, TestOutput (
+ [["write"; "/new"; "new file contents"];
+ ["pwrite"; "/new"; ""; "4"];
+ ["cat"; "/new"]], "new file contents")],
+ "write to part of a file",
+ "\
+This command writes to part of a file. It writes the data
+buffer C<content> to the file C<path> starting at offset C<offset>.
+
+This command implements the L<pwrite(2)> system call, and like
+that system call it may not write the full data requested. The
+return value is the number of bytes that were actually written
+to the file. This could even be 0, although short writes are
+unlikely for regular files in ordinary circumstances.
+
+See also C<guestfs_pread>.");
+
]
let all_functions = non_daemon_functions @ daemon_functions