62 if (size > max_bytes_ || (data ==
nullptr && size != 0) || !EnsureOpen()) {
66 const int fd = fileno(file_);
67 if (fd < 0 || ftruncate(fd, 0) != 0) {
71 std::size_t offset = 0;
72 while (offset < size) {
73 const ssize_t written = pwrite(fd, data + offset, size - offset,
static_cast<off_t
>(offset));
74 if (written < 0 && errno == EINTR) {
80 offset +=
static_cast<std::size_t
>(written);