Το αρχείο input.txt δημιουργήθηκε με echo hello > input.txt. Εξηγήστε την
έξοδο του προγράμματος («What?!»).
#include <stdio.h>
int main() {
FILE *fileToRead, *fileToWrite;
fileToRead = fopen("input.txt", "r");
if (!fileToRead) return 1;
int buffer[1024];
size_t integersRead = fread(buffer, sizeof(int), 1023, fileToRead);
printf("# of integers read: %d\n", integersRead);
printf("Integer read: %d %08x\n", buffer[0], buffer[0]);
fclose(fileToRead);
return 0;
}
$ ./freadint
# of integers read: 1
Integer read: 1819043176 6c6c6568
$ hexdump -C input.txt
00000000 68 65 6c 6c 6f 0a |hello.|
Η fread αντιγράφει bytes χωρίς καμία μετατροπή και μετρά μόνο ολόκληρα δεδομένα
μεγέθους sizeof(int). Συγκρίνετε τα bytes του hexdump με το δεκαεξαδικό που
τυπώθηκε και θυμηθείτε το endianness.
Αριθμός στον οδηγό: Α18.5
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec18-fread-int ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec18-fread-int.html ·
Markdown (GitHub)