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
This commit is contained in:
Daniel P. Berrange 2012-01-11 09:58:59 +00:00
parent 6fba577e50
commit ef7efbc6ef
3 changed files with 24 additions and 0 deletions

View File

@ -1174,6 +1174,7 @@ virFileDirectFdNew;
virFileFclose;
virFileFdopen;
virFileRewrite;
virFileTouch;
# virkeycode.h

View File

@ -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;
}

View File

@ -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 */