Wątek przeniesiony 2014-01-31 12:16 z C/C++ przez ŁF.

Bardzo dziwny odczyt pliku binarnego

0

Niby prosta rzecz, odczyt danych z pliku binarnego:

ssize_t r;
pFile = fopen ( filename,    "r");
rewind (pFile);
unsigned char *pBuffer = calloc(500000, 1);
r = fread ((void*)pBuffer,1,500000, pFile);

no tutaj problem bo odczytuje tylko 641 pierwszych bajtów pliku, a każda następna próba odczytu pliku "fread" zwraca o Bajtów i a eof(pFile) podaje że to koniec pliku.
Dodam, że plik ma ponad 370kB.

Próbowałem już zmienić nazwę, zmienić lokalizację pliku, zrobić kopię pliku i ciągle to samo. Inne pliki odczytuje poprawnie.
Co jest nie w porządku? Przecież fread nie sprawdza zawartości.

Belamy

dodanie znacznika <code class="cpp"> - fp

3

"rb"

3
FILE *pFile = fopen(filename, "rb");
fseek(pFile, 0L, SEEK_END);
int r = ftell(pFile);
rewind (pFile);
unsigned char *pBuffer = calloc(r, 1);
r = fread ((void*)pBuffer, 1, r, pFile);
fclose(pFile);

1 użytkowników online, w tym zalogowanych: 0, gości: 1