そのため、Win7x64ではfreadが予期しない動作をしています。
file = fopen(path, "rb");
fseek(file, 0, SEEK_END);
fileSize = ftell(file);
fseek(file, 0, SEEK_SET);
buffer = malloc(fileSize);
length = fread(buffer, fileSize, 1, file);
freadは読み取られたときに1バイトを返しますが、(ferrorとfeofは両方とも0を返します)
length = fread(buffer, 1, fileSize, file);
freadは、fileSizeと同じバイト数を返します。MSDNによると、「fread関数は、入力ストリームからサイズバイトのアイテムをカウントアップして読み取り、それらをバッファーに格納します。」これは、どちらのコードも同じ量のデータを読み取る必要があることを意味すると解釈します。なぜfreadが期待どおりに機能しないのか誰かが知っていますか?