diff --git a/rwkv.cpp b/rwkv.cpp index 9119d13..77a3f95 100644 --- a/rwkv.cpp +++ b/rwkv.cpp @@ -16,6 +16,11 @@ #include // fstat +#ifdef WIN32 +#define stat64 _stat64 +#define fstat64 _fstat64 +#endif + // --- Error handling --- thread_local enum rwkv_error_flags global_last_error = RWKV_ERROR_NONE; @@ -292,8 +297,8 @@ struct rwkv_context * rwkv_init_from_file(const char * file_path, const uint32_t RWKV_ASSERT_NULL_MSG(RWKV_ERROR_FILE | RWKV_ERROR_FILE_OPEN, file, "Failed to open file %s", file_path); rwkv_file_guard file_guard { file }; - struct stat file_stat; - RWKV_ASSERT_NULL_MSG(RWKV_ERROR_FILE | RWKV_ERROR_FILE_STAT, fstat(fileno(file), &file_stat) == 0, "Failed to stat file %s", file_path); + struct stat64 file_stat; + RWKV_ASSERT_NULL_MSG(RWKV_ERROR_FILE | RWKV_ERROR_FILE_STAT, fstat64(fileno(file), &file_stat) == 0, "Failed to stat file %s", file_path); int32_t magic; RWKV_ASSERT_NULL(RWKV_ERROR_FILE, read_int32(file, &magic, "magic"));