DOS で DJGPP を使用してバイナリ ファイルを読み取ると、このコードがハングします。これは、fread 呼び出しが行われたときに発生します。呼び出しが削除された場合、プログラムは正常に実行されます。同じコードが Visual C++ 2008 で正常に実行されます。 djgpp で同様の問題が発生した人はいますか? 本当に単純なことを見逃していますか?
char x;
string Filename = "my.bin" ;
fp = fopen(Filename.c_str(),"rb");
if (fp == NULL)
{
cout << "File not found" << endl ;
}
if (fseek (fp, 0, SEEK_END) != 0)
{
cout <<"End of File can't be seeked";
return -1;
}
if ( (fileLength = ftell(fp)) == -1)
{
cout <<"Can't read current position of file";
return -1;
}
if (fseek (fp, 0, SEEK_SET) != 0)
{
cout <<"Beginning of File can't be seeked";
return -1;
}
if (fread(&x,sizeof(x),1,fp) != sizeof(x))
{
cout <<"file not read correctly";
return -1;
}