Są dokładnie takie same. Co do endianizmu, to zależy od tego, co czytasz. Normalnie będzie to bufor bajtów, które będziesz musiał "unformatować", zgodnie z formatem, w jakim zostały napisane. A ponieważ jest to bajt, endianness nie odgrywa żadnej roli.
EDIT:
Jak simonc wskazał (a następnie usunięty, bo nie dostać 100% rację --- ale jego punktem był ważny): istnieje różnica w odniesieniu do wartości zwracanej (które musisz użyć, aby wiedzieć, czy funkcja zadziałała, czy nie). fread(buffer, 8192, 1, fp)
zwróci 0 lub 1, a 1 tylko wtedy, gdy wszystkie 8192 bajty zostały przeczytane. Ponadto Posix twierdzi, że zawartość bufora nie jest określona dla obiektów częściowo odczytanych. W praktyce bufor zostanie wypełniony tyle bajtów, ile można odczytać, ale ponieważ nie wiesz, ile to było, nie za wiele ci to za dużo. Podsumowując, zawsze powinieneś używać fread(buffer, 1, 8192, fp);
(ponieważ nie ma sensu używać tej funkcji do niczego poza buforem bajtów).
Cóż, ponieważ jest to bajt, oczywiście endianness będzie odgrywać pewną rolę. Wyobraź sobie, że próbuje odczytać te 8kb danych do struktury, która ma na przykład członków "int". Zakładasz, że próbuje coś takiego jak "char string [] = fread (dane, 8192,1, fp);' – fvdalcin
@fvdalcin On czyta bajty. Bajty nie mają endianizmu. Gdy je przeczyta, musi je zinterpretować zgodnie ze specyfikacjami formatu pliku. Zwykle należy to robić bez uwzględnienia endianizmu. –
@fvdalcin I tak, jedynym rozsądnym zastosowaniem tych funkcji jest 'unsigned char buffer [8192]; fread (bufor, 8192, 1, fp); '. Następnie należy zinterpretować bufor zgodnie z określonym formatem pliku. –