读取文件的错误

时间:2013-09-17 13:08:27

标签: c++ linux

我正在进行数据传输和计算crc。我在计算机上观察到的是这个代码将blob文件的二进制数据从地址0x2420输出到0x2430输出

4f ef ff c0 48 ef 0 f8 0 48 ef 7c 0 0 28 30 

它应该在哪里

4f ef ff c0 48 ef 0 f8 0 c0 48 ef 7c 0 0 28 

使用xxd或hexdump(hexdump有错误的endianes)看到了

代码:

#include <iostream>
#include <stdint.h>
#include <fstream>
#include <iterator>

template<typename iterator>
uint32_t PrintData(iterator it,int len)
{    
   for(int i = 0; i < len;  i++ )
   {
      std::cout<<std::hex<<(uint32_t)*it<<" ";
      it++;
   }
   std::cout <<std::endl;
   return 0;
}


int main()
{
    std::ifstream file;
    file.open("blob",std::fstream::in | std::fstream::binary);
    std::istream_iterator<uint8_t> stream(file.seekg(0x2420,std::ios::beg));        
    PrintData(stream,16);
}

来源和数据 https://docs.google.com/file/d/0B4BEBIblI7RPTnFjYU8zU0cyQlk/edit?usp=sharing

0 个答案:

没有答案