| 187 | } |
| 188 | |
| 189 | ErrorCode MNNSetFileSize(file_t file, size_t aimed_size) |
| 190 | { |
| 191 | if (file == INVALID_FILE) { |
| 192 | return FILE_NOT_EXIST; |
| 193 | } |
| 194 | #if defined(WIN32) || defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) |
| 195 | LARGE_INTEGER size; |
| 196 | size.QuadPart = aimed_size; |
| 197 | bool success = SetFilePointerEx(file, size, NULL, FILE_BEGIN); |
| 198 | if (!success) { |
| 199 | return FILE_RESIZE_FAILED; |
| 200 | } |
| 201 | success = SetEndOfFile(file); |
| 202 | if (!success) { |
| 203 | return FILE_RESIZE_FAILED; |
| 204 | } |
| 205 | return NO_ERROR; |
| 206 | #else |
| 207 | if (-1 == ftruncate(file, aimed_size)) { |
| 208 | return FILE_RESIZE_FAILED; |
| 209 | } |
| 210 | return NO_ERROR; |
| 211 | #endif |
| 212 | } |
| 213 | |
| 214 | size_t MNNReadFile(file_t file, void * buf, size_t bytes) |
| 215 | { |
no outgoing calls