0
我試圖從256字節讀入65536字節文件的緩衝區,通過使用fopen,fread,fwrite和fseek將其視爲隨機訪問文件。我沒有收到任何錯誤,但讀取後緩衝區仍爲空,即使文件非空且fread報告讀取的是256字節。這裏是我的代碼:儘管非空文件fread緩衝區爲空白
FILE *file = NULL;
char buffer[255];
memset(buffer, 0, sizeof(buffer));
file = fopen("BACKING_STORE.bin","r");
if(file == NULL) {
printf("Error: can't open file.\n");
return NULL;
} // end if
if(fread(buffer, 1, 256, file) != 256) {
printf("Error: reading from file failed.\n");
return NULL;
} // end if
printf("The bytes read are [%s]\n", buffer);
fclose(file);
而只是爲了確認,我打開了一個十六進制編輯器的BACKING_STORE.bin文件只是爲了確保它不是空的。這裏有一個截圖:
運行該程序後,我得到的輸出:「讀取的字節是[]」,但沒有任何錯誤。
我對C相當陌生,所以我確信這只是我錯過的簡單東西。
感謝您的幫助。 :)
未定義行爲:您的緩衝區爲255個字節,但是你看256。 – Olaf