fstream を使用してバイナリ ファイルを読み取っていますが、奇妙なことに、コードを実行するたびに同じ入力ファイルに対して異なる値が得られます。
if(fs->is_open())
{
while (!fs->eof())
{
fs->seekg( pos );
fs->read( (char *)&mdfHeader, sizeof(mdfHeader_t) );
pos += mdfHeader.length;
fs->read( (char *)&eventHeader, sizeof(eventHeader_t) );
fs->read( (char *)&rawHeader, sizeof(rawHeader_t) );
fs->read( (char *)&ingressHeader, sizeof(ingressHeader_t) );
fs->read( (char *)&l1Header_xc0, sizeof(l1Header_xc0_t) );
fs->read(data, dataLength);
printf("Data=%#x\n",data);
std::cout << "counter: " << c << "\n";
c++;
}
fs->close();
}
ご覧のとおり、毎回同じはずのデータを出力しますが、異なる値が得られます。mdfHeader.length は、データの 1 ブロックの長さです。