如何测试文件中是否已存在HDF5复合类型?

时间:2017-04-28 12:34:45

标签: c++ hdf5

我有几个具有不同化合物类型的数据集。 我想重用这些化合物类型。

如何测试化合物类型是否已存在? 我尝试了attrExists函数,但是当我的复合数据类型为committed时,它总是返回0。

H5::DataSet* dataset;
H5::CompType mtype1;
mtype1 = ( sizeof(s1_t) );
mtype1.insertMember( MEMBER1, HOFFSET(s1_t, a), H5::PredType::NATIVE_INT);
mtype1.insertMember( MEMBER3, HOFFSET(s1_t, c), H5::PredType::NATIVE_DOUBLE);
mtype1.insertMember( MEMBER2, HOFFSET(s1_t, b), H5::PredType::NATIVE_FLOAT);
dataset = new H5::DataSet(this->file->createDataSet(ss.str(), mtype1, space));

H5Tcommit1(this->file->getLocId(), "s1_t", mtype1.getId());

std::cout << "mtype1.committed(): " << mtype1.committed() << std::endl;
std::cout << "this->file->attrExists(\"s1_t\"): " << this->file->attrExists("s1_t") << std::endl; 

输出

mtype1.committed(): 1
this->file->attrExists("s1_t"): 0

...显示数据类型已提交但attrExists函数无法找到。

是否有不同的方法来检查文件中是否存在复合数据类型?

0 个答案:

没有答案