提交 ef7efbc6 编写于 作者: D Daniel P. Berrange

Add virFileTouch for creating empty files

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
上级 6fba577e
......@@ -1174,6 +1174,7 @@ virFileDirectFdNew;
virFileFclose;
virFileFdopen;
virFileRewrite;
virFileTouch;
# virkeycode.h
......
......@@ -390,3 +390,24 @@ cleanup:
}
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;
}
......@@ -74,4 +74,6 @@ int virFileRewrite(const char *path,
virFileRewriteFunc rewrite,
void *opaque);
int virFileTouch(const char *path, mode_t mode);
#endif /* __VIR_FILES_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册