Διάλεξη 18η: Διαχείρηση Αρχείων



Σχετικά έγγραφα
Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Προγραµµατισµός. Αρχεία

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Διαδικασιακός Προγραμματισμός

Προγραμματισμός Η/Υ (ΤΛ2007 )

ιαφάνειες παρουσίασης #6 (β)

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

Εισαγωγή στον Προγραμματισμό

Επεξεργασία Αρχείων Κειµένου

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Ανάπτυξη και Σχεδίαση Λογισμικού

Εργαστήριο 9: Αρχεία

Προγραμματισμός σε C. Αρχεία κειμένου (Text files)

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου ( ) gepap@aueb.gr

Η γλώσσα προγραμματισμού C Χειρισμός αρχείων

FILE *fopen(const char *fname, const char *mode) void fclose(file *f) void fflush(file *f)

Μεθόδων Επίλυσης Προβλημάτων

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Δομημένος Προγραμματισμός (ΤΛ1006)

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)

Διαδικαστικός Προγραμματισμός

Προγραμματισμός σε C. Αρχεία κειμένου (Text files)

Περιεχόμενα. Πρόλογος... 21

Προγραμματισμός Υπολογιστών με C++

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections)

H ΓΛΩΣΣΑ C. Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου. ηµήτρης Ψούνης

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1

Αρχεία εδοµένων. Προγραµµατισµός Ι 1

4ο σετ σημειώσεων - Χειρισμός αρχείων και structs

i M-1 1. ij f(i, j) N-1. (pixel) 2. M N (x, y) (x, y ) = 256. R(x, y), G(x, y), B(x, y)

Ενδεικτική περιγραφή μαθήματος

Περιεχόµενα. Πρόλογος... 15

Αρχεία. Προγραμματισμός II 1

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός Ι (ΗΥ120)

Αρχές Προγραμματισμού

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

Δομημένος Προγραμματισμός (ΤΛ1006)

Περιεχόμενα. Πρόλογος... 17

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διάλεξη 11η: Δείκτες, μέρος 1

Διάλεξη 15η: Αναδρομή, μέρος 1ο

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Συναρτήσεις πρότυπης βιβλιοθήκης 1. Μερικές συνήθεις συναρτήσεις βιβλιοθήκης int atoi(const char *p) int fclose(file *fp)

lab11 - Να εκτυπώνεις πιο κατατοπιστικά µηνύµατα λάθους. Αν είναι όλα ίδια, δεν είναι ξεκάθαρο ποιο αρχείο έχει πρόβληµα.

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1

Προγραμματισμός Ι (ΗΥ120)

ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΗΝ C

Ι Ανασκόπηση και εμβάθυνση Μερικά πιο προχωρημένα θέματα. ΙΙ Τα αρχεία δεδομένων στη C

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών. ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχεία

4 C Θεωρία και Πράξη. 6.8 Συναρτήσεις και στατικές μεταβλητές Αναδρομικές συναρτήσεις 119

Ανάπτυξη και Σχεδίαση Λογισμικού

Διαδικαστικός Προγραμματισμός

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Αρχεία

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes)

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

C: Από τη Θεωρία στην Εφαρμογή

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

Προγραµµατισµός Ι (ΗΥ120)

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

Διάλεξη 8η: Αλφαριθμητικά (strings)

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο8

αρχεία Εξωτερικά αρχεία Ηµερολόγιο υπολογισµών (log-file) εδοµένα από αρχεία m Επιστροφή στο λειτουργικό σύστηµα Επιπρόσθετες εντολές εισόδου/εξόσου

S, (5, -3, 34, -23, 7) ( *, _

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120)

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Δομημένος Προγραμματισμός

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός II Τα κανάλια stdin, stdout, stderr κανάλι καθιερωμένης εισόδου stdin κανάλι καθιερωμένης εξόδου stdout κανάλι σφαλμάτων stderr

ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης

Η γλώσσα προγραμματισμού C

Sheet PASS 1426 PASS 1428 PASS. Page 1

Διάλεξη 5η: Εντολές Επανάληψης

ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ. Mε την εντολή αυτή μπορούμε να δημιουργήσουμε έναν καινούριον υποκατάλογο.

Η γλώσσα προγραμματισμού C

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Προγραμματισμό για ΗΜΥ

Εισαγωγή στον δομημένο προγραμματισμό

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διάλεξη 9η: Πίνακες (arrays)

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Προγραμματισμός ΙI (E)

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Transcript:

Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24

Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh Δηλώνει τον τύπο δεδομένων FILE με όλες τις πληροφορίες που χρειάζονται για την περιγραφή και προσπέλαση ενός αρχείου Η δήλωση FILE *f δημιουργεί ένα δείκτη f σε FILE Ορίζει 3 προκαθορισμένα αρχεία stdin η κύρια είσοδος stdout η κύρια έξοδος stderr η κύρια έξοδος για λάθη Ορίζει τις τιμές των σταθερών NULL Δείκτης στο πουθενά EOF Το τέλος ενός αρχείου Δηλώνει συναρτήσεις προσπέλασης και διαχείρησης αρχείων Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 2 / 24

Αρχεία Η C βλέπει κάθε αρχείο σαν μια σειρά από bytes Κάθε αρχείο κλείνει με end-of-file marker Μπορούμε να ανοίξουμε ένα αρχείο για διάβασμα ή για γράψιμο Όταν ανοίγει ένα αρχείο επιστρέφεται ένας δείκτης σε FILE Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 3 / 24

Άνοιγμα αρχείων Δήλωση #include<stdioh> FILE *fopen(const char *fname, const char *mode); Παίρνει δύο ορίσματα Το fname είναι το όνομα του αρχείου που θα ανοιχτεί Το mode καθορίζει αν το αρχείο θα ανοιχτεί για ανάγνωση ή για εγγραφή Επιστρέφει έναν δείκτη σε FILE που αναπαριστά το ανοικτό αρχείο Σε περίπτωση αποτυχίας επιστρέφει NULL Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 4 / 24

Τρόποι ανοίγματος αρχείου Τρόπος Περιγραφή Αρχική θέση r rb Ανοίγει προς ανάγνωση Αρχή w wb Ανοίγει προς εγγραφή, δημιουργείται Αρχή αν δεν υπάρ- χει Διαγράφει και αντικαθιστά τα προηγούμενα περιεχόμενα a ab Ανοίγει προς επέκταση, δημιουργείται Τέλος αν δεν υπάρχει r+ rb+ r+b Ανοίγει προς ανάγνωση και Αρχή εγγραφή w+ wb+ w+b Ανοίγει προς ανάγνωση και Αρχή εγγραφή Διαγράφει και αντικαθιστά τα προηγούμενα περιεχόμενα a+ ab+ a+b Ανοίγει προς ανάγνωση και Τέλος εγγραφή, ή επέκταση αν υπάρχει ήδη Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 5 / 24

Λάθη στο άνοιγμα αρχείων Αν συμβεί λάθος κατά το άνοιγμα, η fopen επιστρέφει NULL Πρέπει να γίνεται έλεγχος για λάθος Η πρόσβαση σε δείκτη που είναι NULL προκαλεί λάθος μνήμης (segmentation fault) FILE *f; f = fopen( output_file, w ); if(f == (FILE *) NULL) { fprintf(stderr, Cannot open file\n ); exit(-1); Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 6 / 24

Σειριακή προσπέλαση Δημιουργία αρχείου κειμένου Αν υπάρχει ήδη αντικαθιστώνται τα περιεχόμενά του file1c int main() { FILE *fp; int index; fp = fopen( mytestfiletxt, w ); if(fp == (FILE *)NULL) { return -1; for(index = 1; index <= 10; index++) { fprintf(fp, Line number %d\n, index); fclose(fp); Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 7 / 24

Ανάγνωση και προβολή αρχείου κειμένου Ανάγνωση ενός αρχείου κειμένου Αν δεν υπάρχει το αρχείο επιστρέφει λάθος catc int main() { FILE *fp; int c; fp = fopen( mytestfiletxt, r ); if(fp == (FILE *)NULL) { fprintf(stderr, File doesn t exist\n ); return -1; do { c = getc(fp); putchar(c); while (c!= EOF); fclose(fp); Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 8 / 24

Αντιγραφή αρχείου σε άλλο Ανάγνωση ενός αρχείου Εγγραφή όλων των περιεχομένων σε άλλο αρχείο cpc void filecopy(file *inf, FILE *outf) { int c; while ((c = getc(inf))!= EOF) { putc(c, outf); Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 9 / 24

Αντιγραφή αρχείου σε άλλο (2) cpc int main(int argc, char **argv) { FILE *input, *output; if(argc!= 3) { fprintf(stderr, usage: %s <from> <to>, argv[0]); return -1; input = fopen(argv[1], r ); output = fopen(argv[2], w ); if( input == (FILE *)NULL output == (FILE *)NULL) { fprintf(stderr, Cannot open files\n ); return -1; filecopy(input, output); fclose(input); fclose(output); Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 10 / 24

Επέκταση αρχείου Επεκτείνουμε ένα αρχείο γράφοντας στο τέλος του Το μέγεθος του αρχείου μεγαλώνει appendc #include<stdioh> int main() { FILE *fp = fopen( filetxt, a ); fprintf(fp, %s\n, This is an extra line! ); fclose(fp); return 0; Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 11 / 24

Κλείσιμο αρχείων Ό,τι ανοίγει πρέπει να κλείνει Το πρόγραμμα δεν πρέπει να αφήνει ανοιχτά αρχεία Μπορεί να μην εμφανιστούν όλες οι αλλαγές στο αρχείο Σε διάφορα λειτουργικά συστήματα υπάρχει μέγιστος αριθμός ανοιχτών αρχείων Δυσχεραίνει η πρόσβαση σε ανοιχτά αρχεία από άλλα προγράμματα Η συνάρτηση fclose κλείνει ένα αρχείο που άνοιξε η fopen int fclose(file *fp); Επιστρέφει 0 αν επιτύχει και EOF διαφορετικά Γίνεται αυτόματα στο τέλος του προγράμματος Είναι καλή πρακτική να γίνεται από τον προγραμματιστή Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 12 / 24

Ανάγνωση και εγγραφή ανά χαρακτήρα Συναρτήσεις που διαβάζουν και γράφουν χαρακτήρες int fgetc(file *fstream); int fputc(int c, FILE *fstream); Η συνάρτηση fgetc διαβάζει ένα χαρακτήρα από το αρχείο Η συνάρτηση fputc γράφει ένα χαρακτήρα στο αρχείο Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 13 / 24

Ανάγνωση και εγγραφή ανά γραμμή Συναρτήσεις που διαβάζουν και γράφουν γραμμές char *fgets(char *s, int size, FILE *stream); int fputs(const char *s, FILE *stream); Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 14 / 24

Μορφοποιημένη ανάγνωση και εγγραφή int fprintf(file *stream, const char *format, ); int fscanf(file *stream, const char *format, ); Αντίστοιχες των printf και scanf Επιπλέον το πρώτο όρισμα καθορίζει το αρχείο εισόδου ή εξόδου Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 15 / 24

Τέλος αρχείου Οι συναρτήσεις ανάγνωσης συνήθως επιστρέφουν EOF όταν φτάσουν στο τέλος του αρχείου Η συνάρτηση feof ελέγχει αν φτάσαμε στο τέλος int feof(file *stream); Επιστρέφει διαφορετικό του μηδέν (!= 0) για τέλος αρχείου, ή 0 αλλιώς Παράδειγμα while (!feof(input_file)) { if (fscanf(input_file, %s %d, username, &score)!= 2) { break; fprintf(output_file, %s %d, username, score+10); Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 16 / 24

Προκαθορισμένα αρχεία Η βιβλιοθήκη stdioh ορίζει τρία ειδικά αρχεία FILE* FILE *stdin, *stdout, *stderr; Τα αρχεία stdin, stdout, stderr είναι αυτόματα ανοικτά σε κάθε C πρόγραμμα Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 17 / 24

Προκαθορισμένα αρχεία (2) Το λειτουργικό σύστημα ανοίγει τα τρία ειδικά αρχεία πριν αρχίσει να εκτελεί το πρόγραμμα Το ειδικό αρχείο stdin αντιστοιχεί στο πληκτρολόγιο φαίνεται σαν ένα αρχείο που περιέχει ό,τι πληκτρολογείται Το ειδικό αρχείο stdout αντιστοιχεί στην οθόνη Το ειδικό αρχείο stderr αντιστοιχεί στην οθόνη (για μηνύματα λάθους) Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 18 / 24

Ανακατεύθυνση στο UNIX Το λειτουργικό σύστημα UNIX (και το Linux) μπορεί να αντικαταστήσει τις προκαθορισμένες τιμές για τα stdin, stdout, stderr με οποιοδήποτε αρχείο Εκτελώντας: /aout < inputfile Το UNIX θέτει το αρχείο stdin να αντιστοιχεί στο inputfile αντί για το πληκτρολόγιο Εκτελώντας: /aout > outputfile Το UNIX θέτει το αρχείο stdout να αντιστοιχεί στο outputfile αντί για την οθόνη Εκτελώντας: /aout >& errorfile Το UNIX θέτει το αρχείο stderr να αντιστοιχεί στο errorfile αντί για την οθόνη Μπορούν να συνδυαστούν: /aout < inputtxt > outputtxt >& errortxt Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 19 / 24

Τυχαία προσπέλαση Μία από τις πληροφορίες που διατηρούνται στις δομές τύπου FILE για κάθε αρχείο είναι η τρέχουσα θέση εγγραφής/ανάγνωσης Όταν κάνουμε εγγραφή κειμένου σε ένα αρχείο με τις συναρτήσεις fputc, fputs, fprintf η εγγραφή γίνεται στην τρέχουσα θέση μέσα στο αρχείο Όταν κάνουμε ανάγνωση κειμένου με τις συναρτήσεις fgetc, fgets, fscanf η ανάγνωση γίνεται από την τρέχουσα θέση στο αρχείο Η τρέχουσα θέση αυξάνει ανάλογα με τους χαρακτήρες που έχουμε γράψει ή διαβάσει Η τρέχουσα θέση όταν ανοίγει αρχικά ένα αρχείο εξαρτάται από το όρισμα mode της fopen Μπορούμε να αλλάξουμε την τρέχουσα θέση με την συνάρτηση fseek Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 20 / 24

Βασικές εντολές int fseek(file *stream, long offset, int whence); long ftell(file *stream); void rewind(file *stream); Η fseek αλλάζει την τρέχουσα θέση στο αρχείο κατά offset bytes SEEK_SET σε σχέση με την αρχή SEEK_CUR σε σχέση με την τρέχουσα θέση SEEK_END σε σχέση με το τέλος Η ftell επιστρέφει την τρέχουσα θέση στο αρχείο Η rewind θέτει την τρέχουσα θέση στην αρχή του αρχείου Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 21 / 24

Δυαδικά αρχεία Είδαμε αρχεία κειμένου στα οποία γράφουμε χαρακτήρες Πολλές φορές αποθηκεύουμε δεδομένα άλλης μορφής Δυαδικό αρχείο: αρχείο που δεν περιέχει κείμενο αλλά πιθανώς και άλλες αναπαραστάσεις δεδομένων Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 22 / 24

Ανάγνωση και εγγραφή Συναρτήσεις για την εγγραφή και ανάγνωση δυαδικών αρχείων size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); Η fread διαβάζει από το αρχείο stream nmemb στοιχεία μεγέθους size το καθένα και τα αποθηκεύει στη μνήμη που δείχνει ο ptr Η fwrite γράφει στο αρχείο stream nmemb στοιχεία μεγέθους size το καθένα που βρίσκονται στη μνήμη που δείχνει ο ptr Ο δείκτης ptr δεν χρειάζεται να δείχνει σε δυναμική μνήμη (μπορεί να είναι και η διεύθυνση μιας απλής μεταβλητής &x) Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 23 / 24

Ανάγνωση και εγγραφή (2) Η fwrite γράφει σε ένα δυαδικό αρχείο Παράδειγμα fwrite(&number, sizeof(int), 1, out_file); &number Δείκτης στη μνήμη που περιέχει τα δεδομένα sizeof(int) Μέγεθος ενός στοιχείου από τα δεδομένα που υπάρχουν στην διεύθυνση &number 1 Αριθμός των στοιχείων που υπάρχουν στη διεύθυνση &number out_file Δείκτης στη δομή FILE που περιγράφει το αρχείο στο οποίο θα γίνει η εγγραφή Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 24 / 24