Add a virFileTouch API which ensures that a file will always
exist, even if zero length
* src/util/virfile.c, src/util/virfile.h,
src/libvirt_private.syms: Introduce virFileTouch
virFileFclose;
virFileFdopen;
virFileRewrite;
+virFileTouch;
# virkeycode.h
}
return ret;
}
+
+
+int virFileTouch(const char *path, mode_t mode)
+{
+ int fd = -1;
+
+ if ((fd = open(path, O_WRONLY | O_CREAT, mode)) < 0) {
+ virReportSystemError(errno, _("cannot create file '%s'"),
+ path);
+ return -1;
+ }
+
+ if (VIR_CLOSE(fd) < 0) {
+ virReportSystemError(errno, _("cannot save file '%s'"),
+ path);
+ VIR_FORCE_CLOSE(fd);
+ return -1;
+ }
+
+ return 0;
+}
virFileRewriteFunc rewrite,
void *opaque);
+int virFileTouch(const char *path, mode_t mode);
+
#endif /* __VIR_FILES_H */