Linux:无法读取Windows上编写的二进制文件

时间:2015-01-08 16:54:23

标签: c++ linux gcc

我正在Windows上编写一个二进制文件(Win7 64bit,VS2012 64bit项目)。在这方面找到它。 但是,如果我试图在Linux上的C ++项目中读取它(Kubuntu 64bit,GCC 4.7 64bit proj).ifstream无法打开它。事实上,也尝试使用fopen,它也无法打开文件。

我尝试打开完整的777权限并在文本编辑器中打开文件 - 这很好。

使用以下代码打开文件:

  bool success = false;
 //trying weith fopen:
  FILE *f = NULL;
  f = fopen("xxx.bin","rb");
  if(f != NULL){
      success = true;
  }
  printf("Stat:%d\n",success);

//trying with ifstream
std::ifstream stream;
stream.open("xxx.bin", std::ios::binary);
success = stream.is_open();
if(!success){
        throw;
}
printf("Stat:%d\n",success);

两者都失败了。

可能是什么问题。编码跨平台二进制文件时应该注意什么。我认为endianess不是问题,因为两个操作系统都使用小端。

1 个答案:

答案 0 :(得分:-1)

您确定文件名区分大小写吗? - sjdowling

这是它 - 区分大小写的事情......我在Linux上使用的Windows代码没有考虑到它。谢谢! - 迈克尔四世