| 453 | |
| 454 | template <typename T> |
| 455 | bool WriteFile(const char* filename, const char* mode, const T* data, |
| 456 | size_t count) { |
| 457 | OutputFile file(filename, mode); |
| 458 | FILE* fp = file.GetFileHandle(); |
| 459 | if (fp == nullptr) { |
| 460 | fprintf(stderr, "error: could not open file '%s'\n", filename); |
| 461 | return false; |
| 462 | } |
| 463 | |
| 464 | size_t written = fwrite(data, sizeof(T), count, fp); |
| 465 | if (count != written) { |
| 466 | fprintf(stderr, "error: could not write to file '%s'\n", filename); |
| 467 | return false; |
| 468 | } |
| 469 | |
| 470 | return true; |
| 471 | } |
| 472 | |
| 473 | template bool WriteFile<uint32_t>(const char* filename, const char* mode, |
| 474 | const uint32_t* data, size_t count); |