因此,fread在Win7 x64上表現出色。Windows 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將返回相同的數讀爲檔案大小的字節。 MSDN說:「fread函數讀取從輸入流中計算大小字節的項目並將它們存儲在緩衝區中。」我認爲這意味着任何一段代碼都應該讀取相同數量的數據。有誰知道爲什麼fread沒有像我期望的那樣工作?
非常感謝你 – Matt