diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index a45f91e9dc..a39d93f088 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -492,12 +492,14 @@ hid_t H5File::getLocId() const //-------------------------------------------------------------------------- haddr_t H5File::getFileSize(void) const { - haddr_t file_size = H5Fget_filesize(id); - if( file_size < 0 ) + herr_t ret; + + ret = H5Fget_filesize(id, size); + if( ret < 0 ) { throw FileIException("H5File::getFileSize", "H5Fget_filesize failed"); } - return(file_size); + return ret; } //-------------------------------------------------------------------------- diff --git a/c++/src/H5File.h b/c++/src/H5File.h index bb20643aae..d688e6fe2d 100644 --- a/c++/src/H5File.h +++ b/c++/src/H5File.h @@ -73,7 +73,7 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG { DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const; // Retrieves the file size of an opened file. - haddr_t getFileSize() const; + herr_t getFileSize(hsize_t *size) const; // Reopens this file void reopen(); diff --git a/c++/test/tfile.cpp b/c++/test/tfile.cpp index 9dc61279b0..1ad2680e53 100644 --- a/c++/test/tfile.cpp +++ b/c++/test/tfile.cpp @@ -337,8 +337,9 @@ test_file_size(void) H5File fid( FILE4, H5F_ACC_TRUNC, FileCreatPropList::DEFAULT, fapl); // Get file size - haddr_t file_size = fid.getFileSize(); - CHECK(file_size, FAIL, "H5File::getFileSize"); + hsize_t file_size; + herr_t ret = fid.getFileSize(&file_size); + CHECK(ret, FAIL, "H5File::getFileSize"); // Check if file size is reasonable. It's supposed to be 2KB now. if(file_size<1*KB || file_size>4*KB)