Code

Windows: A pipe() replacement whose ends are not inherited to children.
[git.git] / write_or_die.c
index e125e11d3b63e3dab9077d7b414e83e7ff7d16ad..630be4cb9414b1686a5ad86a4d5166f2828096f1 100644 (file)
@@ -40,7 +40,7 @@ void maybe_flush_or_die(FILE *f, const char *desc)
        }
 }
 
-int read_in_full(int fd, void *buf, size_t count)
+ssize_t read_in_full(int fd, void *buf, size_t count)
 {
        char *p = buf;
        ssize_t total = 0;
@@ -57,7 +57,7 @@ int read_in_full(int fd, void *buf, size_t count)
        return total;
 }
 
-int write_in_full(int fd, const void *buf, size_t count)
+ssize_t write_in_full(int fd, const void *buf, size_t count)
 {
        const char *p = buf;
        ssize_t total = 0;
@@ -78,6 +78,13 @@ int write_in_full(int fd, const void *buf, size_t count)
        return total;
 }
 
+void fsync_or_die(int fd, const char *msg)
+{
+       if (fsync(fd) < 0) {
+               die("%s: fsync error (%s)", msg, strerror(errno));
+       }
+}
+
 void write_or_die(int fd, const void *buf, size_t count)
 {
        if (write_in_full(fd, buf, count) < 0) {