diff --git a/src/misc/helpers.cpp b/src/misc/helpers.cpp index f34cc9c..0e4e64d 100644 --- a/src/misc/helpers.cpp +++ b/src/misc/helpers.cpp @@ -136,4 +136,19 @@ std::string get_absolute_path(const std::string &relative_path) } return std::string(resolved_path); +} + + +ssize_t write_all(int fd, const void *buf, size_t count) { + const char *p = (const char *)buf; + while (count > 0) { + ssize_t written = write(fd, p, count); + if (written == -1) { + if (errno == EINTR || errno == EAGAIN) continue; // Retry + return -1; // Other errors + } + count -= written; + p += written; + } + return 0; } \ No newline at end of file