New API: write for creating files with fixed content (RHBZ#501889).
[libguestfs.git] / daemon / file.c
index 2399828..7d37f56 100644 (file)
@@ -314,6 +314,34 @@ do_write_file (const char *path, const char *content, int size)
   return 0;
 }
 
+int
+do_write (const char *path, const char *content, size_t size)
+{
+  int fd;
+
+  CHROOT_IN;
+  fd = open (path, O_WRONLY | O_TRUNC | O_CREAT | O_NOCTTY, 0666);
+  CHROOT_OUT;
+
+  if (fd == -1) {
+    reply_with_perror ("open: %s", path);
+    return -1;
+  }
+
+  if (xwrite (fd, content, size) == -1) {
+    reply_with_perror ("write");
+    close (fd);
+    return -1;
+  }
+
+  if (close (fd) == -1) {
+    reply_with_perror ("close: %s", path);
+    return -1;
+  }
+
+  return 0;
+}
+
 char *
 do_read_file (const char *path, size_t *size_r)
 {