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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Αρχεία Προγραμματισμός II 1 ais@inf.uth.gr

2 Μόνιμη αποθήκευση δεδομένων Οι μεταβλητές και δομές δεδομένων ενός προγράμματος υπάρχουν στην μνήμη του Η/Υ Χάνονται όταν τερματιστεί το πρόγραμμα ή σβήσει ο Η/Υ (πιθανώς λόγω βλάβης) Χρειαζόμαστε μόνιμα αποθηκευτικά μέσα που λειτουργούν χωρίς παροχή ρεύματος μαγνητικά, οπτικά, soid-state, Σημείωση: και ο ίδιος ο κώδικας (sources, binaries) είναι δεδομένα που δεν θέλουμε να χάνονται κάθε φορά που σβήνουμε τον υπολογιστή Προγραμματισμός II 2 ais@inf.uth.gr

3 Πρόσβαση μέσων αποθήκευσης Η πρόσβαση στα μόνιμα αποθηκευτικά μέσα είναι μια αρκετά περίπλοκη υπόθεση καμία σχέση με το απλό μοντέλο της κυρίως μνήμης κάθε τεχνολογία έχει τις ιδιαιτερότητες της κάθε συσκευή μπορεί να απαιτεί διαφορετική διαχείριση Χρειάζεται ένα γενικό μοντέλο πρόσβασης ανεξάρτητου της τεχνολογίας που χρησιμοποιείται για την υλοποίηση μιας αποθηκευτικής συσκευής Επίσης χρειάζεται ελεγχόμενη πρόσβαση στις συσκευές αποθήκευσης, ώστε να παρέχεται προστασία/ασφάλεια των δεδομένων Προγραμματισμός II 3 ais@inf.uth.gr

4 Appications API κατάλληλη αφαίρεση; Προγραμματισμός II 4 ais@inf.uth.gr

5 Αρχεία Ξεχωριστές οντότητες αποθήκευσης δεδομένων Τα αρχεία είναι μόνιμα: εξακολουθούν να υφίστανται ακόμα και μετά τον τερματισμό των προγραμμάτων που τα δημιούργησαν/επεξεργάστηκαν συχνά, επιζούν πολύ παραπάνω και από τους υπολογιστές και τα προγράμματα μέσω των οποίων δημιουργήθηκαν Τα αρχεία είναι επώνυμα: κάθε αρχείο έχει «μοναδικό» όνομα/αναγνωριστικό για να μπορεί να εντοπιστεί αργότερα, είτε από το πρόγραμμα που το δημιούργησε είτε από άλλα προγράμματα, είτε από τον ίδιο τον χρήστη Προγραμματισμός II 5 ais@inf.uth.gr

6 Χώρος ονομάτων (name space) Τα ονόματα αρχείων δίνονται στο πλαίσιο ενός «χώρου ονομάτων» του συστήματος Ο χώρος είναι δομημένος ιεραρχικά διευκολύνει την ανάθεση μοναδικών ονομάτων διευκολύνει την διαχείριση πολλών αρχείων διευκολύνει τον έλεγχο πρόσβασης Κάθε επίπεδο ονομάζεται κατάλογος (directory) Η δομή αναπαρίσταται ως «ανεστραμμένο» δέντρο Η ρίζα (root) είναι στο ψηλότερο επίπεδο και αποτελεί την κορυφή της ιεραρχίας καταλόγων Τα αρχεία μπορεί να δημιουργηθούν/τοποθετηθούν σε οποιοδήποτε επίπεδο του χώρου ονομάτων Προγραμματισμός II 6 ais@inf.uth.gr

7 / users system profs ugrads grads bin incude ibs ais emkouts progii distrsys progii a1.pdf a1.pdf Προγραμματισμός II 7 ais@inf.uth.gr

8 Προσδιορισμός ονομάτων Απόλυτος προσδιορισμός, σε καθολικό επίπεδο πλήρες όνομα, με βάση την κορυφή της ιεραρχίας Σχετικός προσδιορισμός, σε τοπικό επίπεδο τμήμα ονόματος, με βάση τον κατάλογο εργασίας Συμβάσεις "." για τον τρέχοντα κατάλογο εργασίας ".." για τον κατάλογο που βρίσκεται ένα επίπεδο ψηλότερα από τον τρέχοντα κατάλογο εργασίας "/" για την ρίζα του δέντρου, αλλά και ως διαχωριστικό ανάμεσα στα ονόματα καταλόγων/αρχείων ενός μονοπατιού Προγραμματισμός II 8 ais@inf.uth.gr

9 / users system profs ugrads grads bin incude ibs ais emkouts progii distrsys progii a1.pdf a1.pdf όνομα: a1.pdf κατάλογος εργασίας αναφορά Προγραμματισμός II 9 ais@inf.uth.gr

10 / users system profs ugrads grads bin incude ibs ais emkouts progii distrsys progii a1.pdf a1.pdf όνομα: progii/a1.pdf κατάλογος εργασίας αναφορά Προγραμματισμός II 10

11 / users system profs ugrads grads bin incude ibs ais emkouts progii distrsys progii a1.pdf a1.pdf όνομα: progii/a1.pdf κατάλογος εργασίας αναφορά Προγραμματισμός II 11

12 / users system profs ugrads grads bin incude ibs ais emkouts progii distrsys progii a1.pdf a1.pdf όνομα: /users/profs/ais/progii/a1.pdf κατάλογος εργασίας αναφορά Προγραμματισμός II 12

13 / users system profs ugrads grads bin incude ibs ais emkouts progii distrsys progii a1.pdf a1.pdf όνομα: /users/profs/ais/progii/a1.pdf κατάλογος εργασίας αναφορά Προγραμματισμός II 13

14 / users system profs ugrads grads bin incude ibs ais emkouts progii distrsys progii a1.pdf a1.pdf όνομα:../progii/a1.pdf κατάλογος εργασίας αναφορά Προγραμματισμός II 14

15 / users system profs ugrads grads bin incude ibs ais emkouts progii distrsys progii a1.pdf a1.pdf όνομα:../../grads/emkouts/progii/a1.pdf κατάλογος εργασίας αναφορά Προγραμματισμός II 15

16 Προστασία αρχείων / καταλόγων Για κάθε αρχείο / κατάλογο το λειτουργικό διατηρεί πληροφορία για τον ιδιοκτήτη του, καθώς και για τις άδειες πρόσβασης στο αρχείο Υποκείμενα αδειών: user, group, others Ξεχωριστές άδειες για κάθε υποκείμενο Όταν ένα πρόγραμμα επιχειρεί να προσπελάσει ένα αρχείο, το λειτουργικό ελέγχει την άδεια πρόσβασης αν ο χρήστης στο όνομα του οποίου εκτελείται το πρόγραμμα δεν έχει άδεια να προσπελάσει το αρχείο, η λειτουργία δεν εκτελείται Αλλαγές ιδιοκτησίας γίνονται μέσω chown / fchown Αλλαγές αδειών γίνονται μέσω chmod / fchmod Προγραμματισμός II 16 ais@inf.uth.gr

17 Προσδιορισμός αδειών με chmod Προσδιορισμός υποκειμένων u(ser) χρήστης/ιδιοκτήτης g(group) ομάδα o(thers) άλλοι a() όλοι Προσδιορισμός άδειας r(ead) ανάγνωση w(rite) γράψιμο/αλλαγή (e)x(ecute) εκτέλεση chmod u+rwx fiename chmod o+rx,o-w fiename Προγραμματισμός II 17

18 Οκταδική κωδικοποίηση αδειών read (octa 4) write (octa 2) execute (octa 1) Προσδιορισμός άδειας 4 ανάγνωση 2 γράψιμο/αλλαγή 1 εκτέλεση Ξεχωριστά οκταδικά ψηφία για χρήστη-ομάδα-άλλους με αυτή την σειρά Πιο εύκολη προσθαφαίρεση αδειών chmod 755 fiename user group others Προγραμματισμός II 18 ais@inf.uth.gr

19 Γράψιμο/διάβασμα δεδομένων σε/από αρχείο Τα bytes γράφονται/διαβάζονται σειριακά Η θέση εγγραφής/ανάγνωσης αυξάνεται αυτόματα όταν γράφονται/διαβάζονται bytes (κατά τον αριθμό των bytes που γράφτηκαν/διαβάστηκαν) Η θέση εγγραφής/ανάγνωσης μπορεί να αλλάξει (προς τα εμπρός ή πίσω) και με ρητό τρόπο Το αρχείο επεκτείνεται/μεγαλώνει αυτόματα, όταν γράφονται bytes πέρα από το τέλος του Το αρχείο μπορεί να συρρικνωθεί/κοπεί, από το τέλος προς την αρχή αυτό πρέπει να γίνει ρητά δεν υπάρχει λειτουργία για το σβήσιμο/αποκοπή περιεχομένων από την αρχή ή το μέσο του αρχείου Προγραμματισμός II 20

20 πρώτο byte θέση ανάγνωσης/εγγραφής τελευταίο byte περιεχόμενα αρχείου Προγραμματισμός II 21

21 Ερμηνεία περιεχομένων ενός αρχείου Το λειτουργικό σύστημα διαβάζει/γράφει bytes από/σε αρχεία χωρίς να τα ερμηνεύει Η σημασία/ερμηνεία των περιεχομένων ενός αρχείου είναι ευθύνη του προγράμματος Χρειάζονται κατάλληλες συμβάσεις/πρότυπα κωδικοποίησης/ερμηνείας των δεδομένων Η τιμή ενός ή πολλών bytes μπορεί να ερμηνευθεί με πολλούς διαφορετικούς τρόπους Text fie: το περιεχόμενο του αρχείου πρέπει να ερμηνευθεί χρησιμοποιώντας την σύμβαση ASCII Binary fie: ένα αρχείο που δεν είναι (μόνο) text Προγραμματισμός II 22

22 Η βιβλιοθήκη stdio Ορίστηκε από τον Dennis Ritchie το 1975 Μέρος του προτύπου ANSI C Λειτουργίες υψηλού επιπέδου για ανάγνωση και γράψιμο δεδομένων, ανεξάρτητες του εκάστοτε λειτουργικού συστήματος Διάβασμα/γράψιμο από/σε ροές δεδομένων (streams) Υποστήριξη για μορφοποιημένη εκτύπωση/σκανάρισμα συμβολοσειρών (strings) και αριθμητικών τιμών Χρησιμοποιεί εσωτερική αποθήκη δεδομένων Χρησιμοποιεί, εσωτερικά, αντίστοιχες κλήσεις συστήματος open, read, write, cose, Προγραμματισμός II 23 ais@inf.uth.gr

23 εφαρμογή (appication) fopen, fread, fwrite, fcose, βιβλιοθήκη stdio open, read, write, cose, αποθήκη κώδικας συστήματος user system Προγραμματισμός II 24

24 Μοροφοποιμένο σκανάρσιμα/εκτύπωση Μετατροπή ανάμεσα στην «εσωτερική» αναπαράσταση / κωδικοποίηση των δεδομένων που υπάρχουν στην μνήμη του προγράμματος, και μια (εντελώς) διαφορετική μορφή που είναι κατανοητή στον άνθρωπο (human readabe) Η stdio παρέχει μια σειρά από τέτοιες λειτουργίες, για την ροή της καθιερωμένης εισόδου/εξόδου αλλά και για οποιαδήποτε άλλη ροή θελήσει να δημιουργήσει η εφαρμογή getc(), putc(), scanf(), printf(), fgetc(), fputc(), fscanf(), fprintf(), Η stdio δημιουργεί αυτόματως ανοιχτές ροές για την συμβατική είσοδο, έξοδο και έξοδο λαθών FILE *stdin, *stdout, *stderr Προγραμματισμός II 25 ais@inf.uth.gr

25 Βασικές λειτουργίες αρχείων (1) FILE *fopen(const char *fiename, const char *mode) O τρόπος με τον οποίο πρόκειται να χρησιμοποιηθεί το αρχείο προσδιορίζεται μέσω της παραμέτρου mode r: για διάβασμα, το αρχείο πρέπει να υπάρχει w: δημιουργία κενού αρχείου για γράψιμο, αν το αρχείο υπάρχει, σβήνονται όλα τα περιεχόμενα του και μένει κενό a: για προσθήκη στο τέλος, το αρχείο δημιουργείται αν δεν υπάρχει r+: για διάβασμα και γράψιμο, το αρχείο πρέπει να υπάρχει w+: δημιουργία κενού αρχείου για διάβασμα και γράψιμο, αν το αρχείο υπάρχει, σβήνονται όλα τα περιεχόμενα του και μένει κενό a+: για διάβασμα και προσθήκη στο τέλος, το αρχείο πρέπει να υπάρχει Προγραμματισμός II 26 ais@inf.uth.gr

26 Βασικές λειτουργίες αρχείων (2) size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) ανάγνωση bytes με αντιγραφή στην διεύθυνση ptr ο αριθμός των bytes που διαβάζονται είναι size x nmemb size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) γραψιμο bytes με αντιγραφή από την διεύθυνση ptr ο αριθμός των bytes που γράφονται είναι size x nmemb int fcose(file *stream) κλείσιμο, με απελευθέρωση πόρων (εσωτερικών buffers) Προγραμματισμός II 27 ais@inf.uth.gr

27 Βασικές λειτουργίες αρχείων (3) void rewind(file *stream) επαναφορά θέσης γράψιματος/ανάγνωσης στην αρχή int fgetpos(file *stream, fpos_t *pos) επιστροφή θέσης γράψιματος/ανάγνωσης int fsetpos(file *stream, const fpos_t *pos) απόλυτη μετακίνηση της θέσης γράψιματος/ανάγνωσης int fseek(file *stream, ong int offset, int whence) σχετική μετακίνηση της θέσης ανάγνωσης/εγγραφής το whence ορίζει το σημείο αναφοράς για το offset SEEK_SET: αρχή του αρχείου SEEK_CUR: τρέχουσα θέση γραψίματος/ανάγνωσης SEEK_END: τέλος του αρχείου Προγραμματισμός II 28

28 Βασικές λειτουργίες αρχείων (4) int feof(file *stream) έλεγχος τέλους αρχείου int ffush(file *stream) άδειασμα εσωτερικής αποθήκης για αρχεία: γράψιμο στον δίσκο int ferror(file *stream) έλεγχος γα λάθος (από προηγούμενη λειτουργία) void perror(const char *str) εκτύπωση μηνύματος λάθος στην συμβατική έξοδο λαθών (stderr) void cearerr(file *stream) καθάρισμα (reset) λάθους και ένδειξης eof Προγραμματισμός II 29

29 Προσοχή στις λεπτομέρειες Διαβάστε προσεκτικά το manua Υπάρχουν διάφορα «περίεργα»... Για παράδειγμα: If a fie is opened for update (the + mode), an output operation may not be foowed by an input operation without fushing the buffer or repositioning, and an input operation may not be foowed by an output operation without fushing the buffer or repositioning, uness the input operation has reached end-of-fie. For input streams, ffush() discards any buffered data that has been fetched from the underying fie, but has not been consumed by the appication. For output streams, ffush() forces a write of a user-space buffered data for the given output or update stream via the stream's underying write function for fies, this does not ensure that the data wi actuay be written on disk. Προγραμματισμός II 30 ais@inf.uth.gr

30 FILE *f; char str[]="heo word"; f=fopen("test","wb+"); fwrite(str,1,5,f); ffush(f); fwrite(&str[5],1,6,f); ffush(f); fwrite(" :-)",1,4,f); ffush(f); str h e C 6C o 6F w o r d \ F 72 6C ερμηνεία ως ASCII τιμή bytes στην μνήμη Προγραμματισμός II 31 ais@inf.uth.gr

31 FILE *f; char str[]="heo word"; f=fopen("test","wb+"); fwrite(str,1,5,f); ffush(f); fwrite(&str[5],1,6,f); ffush(f); fwrite(" :-)",1,4,f); ffush(f); str h e C 6C o 6F w o r d \ F 72 6C test Προγραμματισμός II 32 ais@inf.uth.gr

32 FILE *f; char str[]="heo word"; f=fopen("test","wb+"); fwrite(str,1,5,f); ffush(f); fwrite(&str[5],1,6,f); ffush(f); fwrite(" :-)",1,4,f); ffush(f); str h e C 6C o 6F w o r d \ F 72 6C test C 6C 6F Προγραμματισμός II 33 ais@inf.uth.gr

33 FILE *f; char str[]="heo word"; f=fopen("test","wb+"); fwrite(str,1,5,f); ffush(f); fwrite(&str[5],1,6,f); ffush(f); fwrite(" :-)",1,4,f); ffush(f); str h e C 6C o 6F w o r d \ F 72 6C test C 6C 6F F 72 6C 64 Προγραμματισμός II 34 ais@inf.uth.gr

34 FILE *f; char str[]="heo word"; f=fopen("test","wb+"); fwrite(str,1,5,f); ffush(f); fwrite(&str[5],1,6,f); ffush(f); fwrite(" :-)",1,4,f); ffush(f); str h e C 6C o 6F w o r d \ F 72 6C : - ) 20 3A 2D 29 /0 test C 6C 6F F 72 6C A 2D 29 Προγραμματισμός II 35 ais@inf.uth.gr

35 FILE *f; char str[]="heo word"; f=fopen("test","wb+"); fwrite(str,1,5,f); ffush(f); fwrite(&str[5],1,6,f); ffush(f); fwrite(" :-)",1,4,f); ffush(f); str h e C 6C o 6F w o r d \ F 72 6C test C 6C 6F F 72 6C A 2D 29 Προγραμματισμός II 36 ais@inf.uth.gr

36 fseek(f,-3,seek_cur); fread(&str[6],1,3,f); fseek(f,-9,seek_end); fwrite("there",1,5,f); ffush(f); fcose(f); str h e C 6C o 6F w o r d \ F 72 6C test C 6C 6F F 72 6C A 2D 29 Προγραμματισμός II 37 ais@inf.uth.gr

37 fseek(f,-3,seek_cur); fread(&str[6],1,3,f); fseek(f,-9,seek_end); fwrite("there",1,5,f); ffush(f); fcose(f); str h e C 6C o 6F w o r d \ F 72 6C test C 6C 6F F 72 6C A 2D 29 Προγραμματισμός II 38 ais@inf.uth.gr

38 fseek(f,-3,seek_cur); fread(&str[6],1,3,f); fseek(f,-9,seek_end); fwrite("there",1,5,f); ffush(f); fcose(f); str h e C 6C o 6F : - ) d \0 20 3A 2D 29 6C test C 6C 6F F 72 6C A 2D 29 Προγραμματισμός II 39 ais@inf.uth.gr

39 fseek(f,-3,seek_cur); fread(&str[6],1,3,f); fseek(f,-9,seek_end); fwrite("there",1,5,f); ffush(f); fcose(f); str h e C 6C o 6F : - ) d \0 20 3A 2D 29 6C test C 6C 6F F 72 6C A 2D 29 Προγραμματισμός II 40 ais@inf.uth.gr

40 fseek(f,-3,seek_cur); fread(&str[6],1,3,f); fseek(f,-9,seek_end); fwrite("there",1,5,f); ffush(f); fcose(f); str h e C 6C o 6F : - ) d \0 20 3A 2D 29 6C t h e r e /0 65 test C 6C 6F A 2D 29 Προγραμματισμός II 41 ais@inf.uth.gr

41 fseek(f,-3,seek_cur); fread(&str[6],1,3,f); fseek(f,-9,seek_end); fwrite("there",1,5,f); ffush(f); fcose(f); str h e C 6C o 6F : - ) d \0 20 3A 2D 29 6C test C 6C 6F A 2D 29 Προγραμματισμός II 42 ais@inf.uth.gr

42 fseek(f,-3,seek_cur); fread(&str[6],1,3,f); fseek(f,-9,seek_end); fwrite("there",1,5,f); ffush(f); fcose(f); str h e C 6C o 6F : - ) d \0 20 3A 2D 29 6C test C 6C 6F A 2D 29 Προγραμματισμός II 43 ais@inf.uth.gr

43 Κόψιμο/επέκταση αρχείου με truncate int truncate(const char *path, off_t ength); Αν η τιμή ength είναι μικρότερη από το μήκος του αρχείου, το αρχείο κόβεται σε αυτό το μήκος Αν η τιμή ength είναι μεγαλύτερη από το μήκος του αρχείου, το αρχείο επεκτείνεται σε αυτό το μήκος τα επιπλέον bytes έχουν τιμή x00 Λειτουργία του συστήματος (όχι της stdio) καλό είναι να αποφεύγεται η χρήση λειτουργιών συστήματος παράλληλα με λειτουργίες της stdio Προγραμματισμός II 44

44 Μορφοποιημένο σκανάρισμα / εκτύπωση Αφορά ροές δεδομένων ASII (όχι binary) Η scanf/fscanf διαβάζει σύμβολα που διαχωρίζονται από έναν ή περισσότερους «κατά σύμβαση» διαχωριστικούς χαρακτήρες αυτοί δεν επιστρέφονται στο πρόγραμμα Η printf/fprintf εκτυπώνει όλους τους χαρακτήρες που δίνει το πρόγραμμα δεν αγνοούνται οι «λευκοί» χαρακτήρες που περιέχει η έκφραση (string) που δίνεται από το πρόγραμμα Προγραμματισμός II 45 ais@inf.uth.gr

45 Εσωτερική αποθήκη Η stdio διατηρεί τους χαρακτήρες που προορίζονται για γράψιμο ή ανάγνωση σε εσωτερική αποθήκη μείωση των κλήσεων συστήματος (write/read) Γράψιμο: τα δεδομένα γράφονται στην αποθήκη και μεταφέρονται στην ροή όταν γεμίσει η αποθήκη ή το ζητήσει ρητά το πρόγραμμα με ffush() Διάβασμα: τα δεδομένα διαβάζονται από την ροή στην αποθήκη, και από εκεί προωθούνται στο πρόγραμμα Ξεχωριστή εσωτερική αποθήκη για κάθε ροή, που δημιουργείται αυτόματα κατά την πρώτη κλήση μιας λειτουργίας ανάγνωσης/γραψίματος Προγραμματισμός II 46

46 Πολιτική εσωτερικής αποθήκευσης Υποστηρίζονται 3 διαφορετικές πολιτικές Line buffered: άδειασμα σε \n Fuy buffered: άδειασμα όταν η αποθήκη γεμίσει Not buffered: χωρίς ενδιάμεση αποθήκευση Η stdio θέτει αυτόματα την πολιτική αποθήκευσης, ανάλογα με τον «τύπο» της ροής δεδομένων Καθιερωμένη είσοδος/έξοδος: ine buffered Καθιερωμένη έξοδος λαθών: not buffered Αρχεία: fuy buffered Προγραμματισμός II 47 ais@inf.uth.gr

47 Αλλαγή πολιτικής αποθήκευσης Ο προγραμματιστής μπορεί να προσδιορίσει την επιθυμητή πολιτική αποθήκευσης, για κάθε ροή (FILE) int setvbuf(file *stream, char *buffer, int mode, size_t size); Καθορίζει την πολιτική αποθήκευσης, το μέγεθος της αποθήκης ή/και την μνήμη που θα χρησιμοποιηθεί για την αποθήκη Η λειτουργία setvbuf πρέπει να κληθεί μετά την fopen προτού κληθεί μια λειτουργία ανάγνωσης ή γραψίματος Προγραμματισμός II 48

48 int main(int argc, char *argv[]) { char str[]="heo\nword\n"; int i; } if (argc > 1) { not buffered if (argv[1][0] == 'n') { setvbuf(stdout,null,_ionbf,0); } ese if (argv[1][0] == 'f') { setvbuf(stdout,null,_iofbf,0); } } fuy buffered printf("start printing\n"); for (i=0; i<stren(str); i++) { seep(1); printf("%c",str[i]); } return(0); Προγραμματισμός II 49 ais@inf.uth.gr

49 Ανάγνωση δυαδικών δεδομένων (binary) Μια ροή μπορεί να περιέχει δεδομένα σε δυαδική μορφή Κλασικό παράδειγμα: binary fie Το πρόγραμμα (ο προγραμματιστής) έχει την ευθύνη για την κατάλληλη / «σωστή» ερμηνεία των δεδομένων Όπως πάντα: τα ίδια δεδομένα μπορεί να ερμηνευθούν με εντελώς διαφορετικούς τρόπους... Προγραμματισμός II 50 ais@inf.uth.gr

50 FILE *f; int va=0x21776f77; char str[sizeof(int)+1]; f = fopen("test","wb+"); fwrite(&va,sizeof(int),1,f); ffush(f); printf("wrote %x\n",va); rewind(f); fread(str,sizeof(char),sizeof(int),f); str[sizeof(int)]='\0'; printf("read %s\n",str); fcose(f); va 77 6F 77 21???? itte endian str? Προγραμματισμός II 51 ais@inf.uth.gr

51 FILE *f; int va=0x21776f77; char str[sizeof(int)+1]; f = fopen("test","wb+"); fwrite(&va,sizeof(int),1,f); ffush(f); printf("wrote %x\n",va); rewind(f); fread(str,sizeof(char),sizeof(int),f); str[sizeof(int)]='\0'; printf("read %s\n",str); fcose(f); va 77 6F 77 21???? str? test Προγραμματισμός II 52 ais@inf.uth.gr

52 FILE *f; int va=0x21776f77; char str[sizeof(int)+1]; f = fopen("test","wb+"); fwrite(&va,sizeof(int),1,f); ffush(f); printf("wrote %x\n",va); rewind(f); fread(str,sizeof(char),sizeof(int),f); str[sizeof(int)]='\0'; printf("read %s\n",str); fcose(f); va 77 6F 77 21???? str? test 77 6F Προγραμματισμός II 53 ais@inf.uth.gr

53 FILE *f; int va=0x21776f77; char str[sizeof(int)+1]; f = fopen("test","wb+"); fwrite(&va,sizeof(int),1,f); ffush(f); printf("wrote %x\n",va); rewind(f); fread(str,sizeof(char),sizeof(int),f); str[sizeof(int)]='\0'; printf("read %s\n",str); fcose(f); va 77 6F 77 21???? str? test 77 6F Προγραμματισμός II 54 ais@inf.uth.gr

54 FILE *f; int va=0x21776f77; char str[sizeof(int)+1]; f = fopen("test","wb+"); fwrite(&va,sizeof(int),1,f); ffush(f); printf("wrote %x\n",va); rewind(f); fread(str,sizeof(char),sizeof(int),f); str[sizeof(int)]='\0'; printf("read %s\n",str); fcose(f); va 77 6F F str? test 77 6F Προγραμματισμός II 55 ais@inf.uth.gr

55 FILE *f; int va=0x21776f77; char str[sizeof(int)+1]; f = fopen("test","wb+"); fwrite(&va,sizeof(int),1,f); ffush(f); printf("wrote %x\n",va); rewind(f); fread(str,sizeof(char),sizeof(int),f); str[sizeof(int)]='\0'; printf("read %s\n",str); fcose(f); va 77 6F F str 00 test 77 6F Προγραμματισμός II 56 ais@inf.uth.gr

56 FILE *f; int va=0x21776f77; char str[sizeof(int)+1]; f = fopen("test","wb+"); fwrite(&va,sizeof(int),1,f); ffush(f); printf("wrote %x\n",va); rewind(f); fread(str,sizeof(char),sizeof(int),f); str[sizeof(int)]='\0'; printf("read %s\n",str); fcose(f); va 77 6F F str 00 w o w! \0 ASCII string test 77 6F Προγραμματισμός II 57 ais@inf.uth.gr

57 FILE *f; int va=0x21776f77; char str[sizeof(int)+1]; f = fopen("test","wb+"); fwrite(&va,sizeof(int),1,f); ffush(f); printf("wrote %x\n",va); rewind(f); fread(str,sizeof(char),sizeof(int),f); str[sizeof(int)]='\0'; printf("read %s\n",str); fcose(f); va 77 6F F str 00 test 77 6F Προγραμματισμός II 58 ais@inf.uth.gr

58 Τύποι αρχείων Το λειτουργικό δεν διατηρεί πληροφορία τύπου για τα αρχεία που δημιουργούν τα προγράμματα ούτε ενδιαφέρεται να ερμηνεύσει τα περιεχόμενα τους Πληροφορία «τύπου» προστίθεται στο αρχείο, κωδικοποιημένη μέσα στα περιεχόμενα του, από το πρόγραμμα που δημιουργεί το αρχείο Οι καταλήξεις αρχείων (π.χ.,.pdf) είναι απλά μια σύμβαση για πιο εύκολη αναζήτηση από τον χρήστη σε πιο ψηλό επίπεδο από ίδιο το σύστημα αρχείων καθαρά ενδεικτική για τα περιεχόμενα του αρχείου (ένα αρχείο με κατάληξη.pdf δεν σημαίνει ότι *είναι* pdf) Προγραμματισμός II 59

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

Αρχεία. Προγραμματισμός II 1 Αρχεία Προγραμματισμός II 1 ais@inf.uth.gr Αποθήκευση δεδομένων Οι μεταβλητές και δομές δεδομένων ενός προγράμματος υπάρχουν στην μνήμη του Η/Υ Χάνονται όταν τερματιστεί το πρόγραμμα ή σβήσει ο Η/Υ (πιθανώς

Διαβάστε περισσότερα

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

Αρχεία. Προγραμματισμός II 1 Αρχεία Προγραμματισμός II 1 ais@inf.uth.gr Μόνιμη αποθήκευση δεδομένων Οι μεταβλητές και δομές δεδομένων ενός προγράμματος υπάρχουν στην μνήμη του Η/Υ Χάνονται όταν τερματιστεί το πρόγραμμα ή σβήσει ο

Διαβάστε περισσότερα

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής

Διαβάστε περισσότερα

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Σύνοψη Ορίστηκε από τον Dennis Ritchie το 1975 Μέρος του προτύπου ANSI C Λειτουργίες εισόδου/εξόδου υψηλού επίπεδου και ανεξάρτητες λειτουργικού συστήματος Υποστήριξη για

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

Διαβάστε περισσότερα

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

FILE *fopen(const char *fname, const char *mode) void fclose(file *f) void fflush(file *f) Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 19: Αρχεία Μόνιµη αποθήκευση δεδοµένων Η µνήµη (RAM) του Η/Υ κρατά δεδοµένα µόνο όσο της δίνεται µια ικανοποιητική παροχή ρεύµατος. Τα περιεχόµενα της µνήµης χάνονται (αµέσως)

Διαβάστε περισσότερα

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ FILE SYSTEM >_ ΔΙΚΑΙΩΜΑΤΑ >_ ΔΙΚΑΙΩΜΑΤΑ? >_ ΜΕΤΑΒΟΛΗ ΔΙΚΑΙΩΜΑΤΩΝ +- chmod

Διαβάστε περισσότερα

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

Διαβάστε περισσότερα

Βασικές λειτουργίες συστήματος πάνω σε αρχεία δεδομένων. Προγραμματισμός II 1

Βασικές λειτουργίες συστήματος πάνω σε αρχεία δεδομένων. Προγραμματισμός II 1 Βασικές λειτουργίες συστήματος πάνω σε αρχεία δεδομένων 1 ais@inf.uth.gr Βασικές λειτουργίες (1) int pen(cnst char *path, int fags, mde_t perms) ανοίγει το αρχείο με όνομα path (αν συμπεριλαμβάνεται ένα

Διαβάστε περισσότερα

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Αλφαριθμητικά και Αρχεία Αλφαριθμητικά (strings) Αρχεία (files) τα βασικά στοιχεία Αλφαριθμητικά της C Συμβολοσειρές (= ακολουθίες

Διαβάστε περισσότερα

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

ιαφάνειες παρουσίασης #6 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 15 η Αρχεία Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

Διαβάστε περισσότερα

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

Αρχεία εδοµένων. Προγραµµατισµός Ι 1 Αρχεία εδοµένων Προγραµµατισµός Ι lalis@inf.uth.gr 1 Μόνιµη αποθήκευση δεδοµένων Η µνήµη (RAM) του Η/Υ κρατάδεδοµένα µόνο όσο της δίνεται µια ικανοποιητική παροχή ρεύµατος. Τα περιεχόµενα της µνήµης χάνονται

Διαβάστε περισσότερα

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

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Αρχεία Το γενικό πλαίσιο: data stream (ρεύμα δεδομένων). stdin, stdout, stderr data stream ως προς τα δεδομένα βάσει προσπέλασης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Δέκατη-τρίτη (13 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

Διαβάστε περισσότερα

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

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένας αγωγός; Μηχανισμός/συσκευή επικοινωνίας διεργασιών Μετάδοση μιας ροής από bytes (μονής κατεύθυνσης) First-in-first-out (FIFO):

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');

Διαβάστε περισσότερα

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15) (Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη

Διαβάστε περισσότερα

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

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

Διαβάστε περισσότερα

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

Διαβάστε περισσότερα

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

Εργαστήριο 9: Αρχεία Εργαστήριο 9: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.

Διαβάστε περισσότερα

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

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 8: Πίνακες, Αλφαριθμητικά Πίνακες Ο πίνακας είναι μια ειδική δομή για την αποθήκευση μιας σειράς από δεδομένα του ίδιου τύπου. Η δήλωση ενός πίνακα γίνεται όπως για μια

Διαβάστε περισσότερα

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1 Μνήμη Διευθύνσεις Δείκτες Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη Η/Υ Ειδικό υλικό, ξεχωριστό από τον επεξεργαστή Χρησιμεύει για την αποθήκευση δεδομένων και της κατάστασης εκτέλεσης του προγράμματος

Διαβάστε περισσότερα

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

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο (File) τη συστηµατική συγκέντρωση δεδοµένων. Τα περισσότερα προγράµµατα στη γλώσσα C, τα οποία διαπραγµατεύονται είσοδο, αποθήκευση και επεξεργασία δεδοµένων χρησιµοποιούν

Διαβάστε περισσότερα

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

Προγραμματισμός σε C. Αρχεία κειμένου (Text files) Προγραμματισμός σε C Αρχεία κειμένου (Text files) Εισαγωγή Στη C έχουμε ειδικές συναρτήσεις για να επεξεργαζόμαστε αρχεία κειμένου που αποθηκεύονται στο δίσκο Τα αρχεία είναι σημαντικά για μόνιμη αποθήκευση

Διαβάστε περισσότερα

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

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1 Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής

Διαβάστε περισσότερα

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

Διαδικαστικός Προγραμματισμός Ενότητα 11: Αρχεία κειμένου Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου

Διαβάστε περισσότερα

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

Διαβάστε περισσότερα

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

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Τύποι αρχείων Ρεύματα Άνοιγμα ρευμάτων Εγγραφή και ανάγνωση δεδομένων προς/από ένα ρεύμα Διαχείριση και κλείσιμο ρευμάτων Παραδείγματα

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

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

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

Διαβάστε περισσότερα

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

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections) Προγραμματισμός συστημάτων UNIX/POSIX Ανακατευθύνσεις (redirections) Shell & ανακατεύθυνση εισόδου Κατά την εκτέλεση ενός προγράμματος, η είσοδος και η έξοδος ενός προγράμματος μπορούν να ανακατευθυνθούν

Διαβάστε περισσότερα

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

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Αλφαριθμητικά θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Βασικοί τύποι της C 2 Όνομα Τύπος / Κωδικοποίηση Μέγεθος (bytes) char Χαρακτήρας 1 int Ακέραιος 2 ή 4 (*) float Πραγματικός

Διαβάστε περισσότερα

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( ) ΣΥΜΒΟΛΟΣΕΙΡΕΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Ο τύπος string Μετατροπή από και προς τον τύπο string Βασικές μέθοδοι Χρήση Ελληνικών Συναρτήσεις C εκτύπωσης και ανάγνωσης Τελευταία

Διαβάστε περισσότερα

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

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

Διαβάστε περισσότερα

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

Streams Input / Output in C++ George Kastrinis

Streams Input / Output in C++ George Kastrinis Streams Input / Output in C++ George Kastrinis (gkastrinis@di.uoa.gr) Streams What? Η είσοδος και η έξοδος δεδομένων, στη C++ βασίζεται στην έννοια των ρευμάτων - streams Ένα ρεύμα είναι ουσιαστικά μια

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

Διαβάστε περισσότερα

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Εισαγωγικές Έννοιες σε Strings - Πίνακες από Strings - Συναρτήσεις

Διαβάστε περισσότερα

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Χειρισμός αρχείων Η γλώσσα προγραμματισμού C Χειρισμός αρχείων Γιατί αρχεία; Τα δεδομένα που χρησιμοποιούνται σε ένα πρόγραμμα βρίσκονται στην κύρια μνήμη του υπολογιστή όσο εκτελείται το πρόγραμμα. Μετά τη εκτέλεση του

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

Διαβάστε περισσότερα

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ (Κεφάλαιο 2.7 και 12) Αρχεία στην C ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

Διαβάστε περισσότερα

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Χειρισμός Αρχείων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Αρχεία Συλλογές δεδομένων. Αποθηκεύονται στην περιφερειακή μνήμη: π.χ.

Διαβάστε περισσότερα

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη ( ιάλεξη 3) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Αρχείων Βασίλης Σακκάς 11/12/2013 1 Διαχείριση Αρχείων 1 Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση μεγάλου όγκου δεδομένων 2. Οι αποθηκευμένες πληροφορίες πρέπει

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

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

ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files) ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files) Αρχείο είναι μια συλλογή δεδομένων του ίδιου τύπου. Ενα αρχείο αποθηκεύεται στην περιφερειακή μνήμη (σκληρό δίσκο, δισκέττα). Τα αρχεία είναι μόνιμα. Τα δεδομένα

Διαβάστε περισσότερα

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

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία Τα δεδομένα που επεξεργαζόμαστε, καθώς και ο κώδικας που τρέχουμε, βρίσκονται αποθηκευμένα στη μνήμη RAM (Random Access Memory) του υπολογιστή. Τα δεδομένα

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Βασικοί τύποι της C 2 Όνομα Τύπος / Κωδικοποίηση Μέγεθος (bytes) char Χαρακτήρας 1 int Ακέραιος 2 ή 4 (*) float Πραγματικός

Διαβάστε περισσότερα

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

Προγραµµατισµός Ι (ΗΥ120) Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών ΑΝΑΚΟΙΝΩΣΕΙΣ 2 Από την επόµενη εβδοµάδα αλλάζουν οι ώρες των εργαστηρίων. Οι νέες ώρες θα ανακοινωθούν σήµερα στη

Διαβάστε περισσότερα

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

Προγραµµατισµός. Αρχεία Προγραµµατισµός Αρχεία Προγραµµατισµός Η Βιβλιοθήκη Εισόδου/Εξόδου Στο stdio.h ηλώνεται ο τύπος δεδοµένων FILE (µε typedef) µε όλες τις πληροφορίες που χρειάζονται για προσπέλαση του αρχείου από τις αντίστοιχες

Διαβάστε περισσότερα

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 8η εβδομάδα. Κοζάνη, 26 Νοεμβρίου 2008. Οι ασκήσεις αυτής της σειράς βασίζονται σε παραδείγματα από το βιβλίο του Β. Σεφερίδη C για αρχάριους

Διαβάστε περισσότερα

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

H ΓΛΩΣΣΑ C. Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος A. Συναρτήσεις ροής εξόδου stdout 1. Γενικά 2. Η συνάρτηση putchar() 3. Οι συναρτήσεις putc() και fputc()

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

Διαβάστε περισσότερα

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 3 η Είσοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

Διαβάστε περισσότερα

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

Προγραμματισμός σε C. Αρχεία κειμένου (Text files) Προγραμματισμός σε C Αρχεία κειμένου (Text files) Εισαγωγή Στη C έχουμε ειδικές συναρτήσεις για να επεξεργαζόμαστε αρχεία κειμένου που αποθηκεύονται στο δίσκο Τα αρχεία είναι σημαντικά για μόνιμη αποθήκευση

Διαβάστε περισσότερα

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009 Προγραµµατισµός Ι (ΗΥ10) ιάλεξη : Πίνακες, Αλφαριθµητικά Πίνακες Ο πίνακας είναι µια ειδική δοµή για την αποθήκευση µιας σειράς από δεδοµένα του ίδιου τύπου. Η δήλωσηενός πίνακα γίνεται όπως για µια κανονική

Διαβάστε περισσότερα

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

Διαβάστε περισσότερα

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

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 Ευρετήριο Η γλώσσα C σε βάθος # #define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 A abs(), 625 AND, 64 ASCII πίνακας

Διαβάστε περισσότερα

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

Περιεχόµενα. Πρόλογος... 15 Πρόλογος... 15 Κεφάλαιο 1: Εισαγωγή... 17 Πώς να διαβάσετε αυτό το βιβλίο...18 Η γλώσσα C Ιστορική αναδροµή...19 Τα χαρακτηριστικά της C...20 C Μια δοµηµένη γλώσσα...20 C Μια γλώσσα για προγραµµατιστές...21

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING Επιλογή δομής δεδομένων Κριτήρια: Μέγεθος του προβλήματος Πως θα χρησιμοποιηθεί Ενέργειες που καθορίζουν

Διαβάστε περισσότερα

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

4ο σετ σημειώσεων - Χειρισμός αρχείων και structs 4ο σετ σημειώσεων - Χειρισμός αρχείων και structs 5 Ιουνίου 2012 1 Αρχεία Η στάνταρ βιβλιοθήκη stdio.h της γλώσσας μας δίνει τη δυνατότητα να χειριστούμε αρχεία του λειτουργικού συστήματος. Οι συναρτήσεις

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & Άνοιγμα αρχείου μέσα από τo SPIM, διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη (Διάλεξη 3) 1 Μετατροπή χαρακτήρων ASCII σε ακέραιο Ο πιο κάτω κώδικας

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

Διαβάστε περισσότερα

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2018-19 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

Διαβάστε περισσότερα

Κλείδωμα αρχείων (file locking) Προγραμματισμός II 1

Κλείδωμα αρχείων (file locking) Προγραμματισμός II 1 Κλείδωμα αρχείων (file locking) Προγραμματισμός II 1 lalis@inf.uth.gr Κλείδωμα αρχείων Οι διεργασίες που προσπελάζουν ένα αρχείο μέσω ξεχωριστών περιγραφέων, μπορούν να γράψουν / διαβάσουν τα περιεχόμενα

Διαβάστε περισσότερα

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C Τεχνολογία και Προγραμματισμός Υπολογιστών Η γλώσσα προγραμματισμού C Με μια ματιά Τύπος Πίνακα Μεταβλητές με ενδείκτη Αλφαριθμητικά - Πίνακες Δισδιάστατος Πολυδιάστατος Πίνακας 2 2 Τύπος Πίνακα Σύνθετος

Διαβάστε περισσότερα

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

Διαβάστε περισσότερα

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

Συναρτήσεις πρότυπης βιβλιοθήκης 1. Μερικές συνήθεις συναρτήσεις βιβλιοθήκης int atoi(const char *p) int fclose(file *fp) Συναρτήσεις πρότυπης βιβλιοθήκης Στο πρώτο μέρος δίνονται, με αλφαβητική σειρά, μερικές από τις πιο συνηθισμένες συναρτήσεις βιβλιοθήκης που συνοδεύουν τους σύγχρονους μεταγλωττιστές της C. Κάτω από το

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

Διαβάστε περισσότερα

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

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

Διαβάστε περισσότερα

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

Αρχές Προγραμματισμού Αρχές Προγραμματισμού https://eclass.upatras.gr/courses/ee806/index.php Βασίλης Παλιουράς paliuras@ece.upatras.gr ΠΕΡΙΣΣΟΤΕΡΑ ΓΙΑ ΑΡΧΕΙΑ 1 int main ( ) { int i; int num; FILE *data ; if ((data = fopen

Διαβάστε περισσότερα