| 134 | } |
| 135 | |
| 136 | int TempFile::save_bin(const void *buf, size_t count) { |
| 137 | if (_reopen_if_necessary() < 0) { |
| 138 | return -1; |
| 139 | } |
| 140 | |
| 141 | const ssize_t len = temp_file_write_all(_fd, buf, count); |
| 142 | |
| 143 | close(_fd); |
| 144 | _fd = -1; |
| 145 | if (len < 0) { |
| 146 | return -1; |
| 147 | } else if ((size_t)len != count) { |
| 148 | errno = ENOSPC; |
| 149 | return -1; |
| 150 | } |
| 151 | return 0; |
| 152 | } |
| 153 | |
| 154 | } // namespace butil |