Преглед изворни кода

LibCore: Add wrapper for fsync()

Romain Chardiny пре 1 година
родитељ
комит
892da127d0
2 измењених фајлова са 8 додато и 0 уклоњено
  1. 7 0
      Userland/Libraries/LibCore/System.cpp
  2. 1 0
      Userland/Libraries/LibCore/System.h

+ 7 - 0
Userland/Libraries/LibCore/System.cpp

@@ -598,6 +598,13 @@ ErrorOr<void> ftruncate(int fd, off_t length)
     return {};
 }
 
+ErrorOr<void> fsync(int fd)
+{
+    if (::fsync(fd) < 0)
+        return Error::from_syscall("fsync"sv, -errno);
+    return {};
+}
+
 ErrorOr<struct stat> stat(StringView path)
 {
     if (!path.characters_without_null_termination())

+ 1 - 0
Userland/Libraries/LibCore/System.h

@@ -127,6 +127,7 @@ ErrorOr<int> open(StringView path, int options, mode_t mode = 0);
 ErrorOr<int> openat(int fd, StringView path, int options, mode_t mode = 0);
 ErrorOr<void> close(int fd);
 ErrorOr<void> ftruncate(int fd, off_t length);
+ErrorOr<void> fsync(int fd);
 ErrorOr<struct stat> stat(StringView path);
 ErrorOr<struct stat> lstat(StringView path);
 ErrorOr<ssize_t> read(int fd, Bytes buffer);