1 / 67

Γλώσσα C & Unix

lpis . csd . auth . gr / curriculum / C + Unix / UNCL 202. html. Γλώσσα C & Unix. Τμήμα Πληροφορικής, ΑΠΘ B’ εξάμηνο. Διδάσκοντες Ν. Βασιλειάδης, Επίκουρος Καθηγητής (θεωρία) Δ. Βράκας, Μεταδιδάκτορας (εργαστήριο). Δομή του Μαθήματος. Εισαγωγή στο Unix

haruki
Download Presentation

Γλώσσα C & Unix

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. lpis.csd.auth.gr/curriculum/C+Unix/UNCL202.html Γλώσσα C & Unix Τμήμα Πληροφορικής, ΑΠΘ B’ εξάμηνο Διδάσκοντες Ν. Βασιλειάδης, Επίκουρος Καθηγητής (θεωρία) Δ. Βράκας, Μεταδιδάκτορας (εργαστήριο)

  2. Δομή του Μαθήματος • Εισαγωγή στο Unix • Σύντομη επανάληψη της Γλώσσας C (δείκτες, δομές) • Δυναμικές δομές δεδομένων • Είσοδος/έξοδος σε αρχεία (υψηλού – χαμηλού επιπέδου) • Αλληλεπίδραση με Unix • Προγραμματισμός κελύφους Unix • Ανάπτυξη εφαρμογών σε C

  3. Εισαγωγή στο Unix Γλώσσα C & Unix

  4. Ιστορική Αναδρομή (1/3) • Multics • Τέλη ‘60 • Ινστιτούτο ΜΙΤ της Βοστόνης, εργαστήρα AT&T Bell labs, General Electrics • UNICS (Kernigham) • 1969 • Thompson (Multics), Ritchie, Canaday • Απλό λειτουργικό σύστημα για τον PDP-7 • Για να εκτελείται με χαμηλό κόστος ένα παιχνίδι με όνομα Space Travel • 1 χρόνο αργότερα μετονομάστηκε σε UNIX

  5. Ιστορική Αναδρομή (2/3) • Τo UNIX εξελίχθηκε ραγδαία τη δεκαετία του 1970 • Η σημαντικότερη στιγμή του είναι το 1979 με την κυκλοφορία της 7ης έκδοσης, που θεωρείται ο άμεσος πρόγονος των σύγχρονων συστημάτων UNIX.

  6. Ιστορική Αναδρομή (3/3) • Αρκετές εταιρίες το υιοθέτησαν και ανέπτυξαν τις δικές τους εκδόσεις. • Sun Microsystems, Microsoft • Στα τέλη του 1980, η AT&T Bell labs η Sun Microsystems και η Microsoft ανέπτυξαν την 4η έκδοση του UNIX System V. • Δημιουργία άλλων συμμαχιών για να ανταγωνιστούν το System V και την επικράτηση στην αγορά. • Τελικά όλοι συμφώνησαν στην ανάπτυξη ενός κοινού πυρήνα • Κάθε εταιρία θα μπορούσε να προσθέτει επιπλέον χαρακτηριστικά στις δικές τις εκδόσεις

  7. Εκδόσεις του UNIX (1/2) • Linux • Αρχικά μόνο για PC (όχι μόνο πλέον) • ιδιαίτερα δημοφιλήςγιατί διανέμεται δωρεάν • υπάρχει μεγάλη κοινότητα από προγραμματιστές που συνεχώς το επεκτείνουν και εκδίδουν νέες εκδόσεις και εφαρμογές. • Solaris • Μετεξέλιξη του SunOS από την εταιρεία Sun Microsystems η οποία κατέχει ένα μεγάλο μέρος στην αγορά σταθμών εργασίας (workstation) • SCO Unix: Santa Cruz Operation • Βασίστηκε στο System V/386 για τον επεξεργαστή 80386 της Intel.

  8. Εκδόσεις του UNIX (2/2) • IRIX: Silicon Graphics • HP-UX: Hewlett Packard • True64 Unix: Compaq DEC • ΑΙΧ: IBM • A/UX: Apple

  9. Το UNIX Σήμερα • Ισχυρό, εύκαμπτο και προπάντων σταθερό λειτουργικό σύστημα • Χρησιμοποιείται από περίπου 20 εκατομμύρια υπολογιστές και 100 εκατομμύρια χρήστες σε ολόκληρο τον κόσμο.

  10. Παράγοντες Επιτυχίας • Σταθερότητα - αξιοπιστία • Ελεύθερη διακίνηση του πηγαίου κώδικα και όχι μόνο των εκτελέσιμων • Μεγάλος αριθμός από utilities και προγράμματα που αναπτύχθηκαν από τρίτους • Δυνατότητες multitasking και multiuser • Εξαιρετικές δυνατότητες για δικτύωση υπολογιστών • Η μεταφερσιμότητα (portability) του, που οφείλεται στο γεγονός ότι το UNIX είναι εξ’ ολοκλήρου γραμμένο σε γλώσσα προγραμματισμού C και επομένως μπορεί πολύ εύκολα να κυκλοφορήσει έκδοση για οποιαδήποτε πλατφόρμα διαθέτει μεταγλωττιστή της γλώσσας C.

  11. Σύντομη Ιστορία της C (1/5) • Αναπτύχθηκε το 1969 - 1973 στα Bell Laboratories (Lucent Technologies) από τον Dennis Ritchie. • Είναι στενά συνδεδεμένη με το λειτουργικό σύστημα Unix όπου και αναπτύχθηκε, αφού τόσο το σύστημα όσο και τα περισσότερα προγράμματα που τρέχουν σ’ αυτό είναι γραμμένα σε C.

  12. Σύντομη Ιστορία της C (2/5) • Προέρχεται έμμεσα από την γλώσσα BCPL, η οποία οδήγησε αρχικά σε μια άλλη γλώσσα την B. • Η γλώσσα B χρησιμοποιήθηκε το 1969 για την συγγραφή του πρώτου συστήματος Unix στον υπολογιστή DEC PDP-7. • Πάνω σε αυτήν βασίστηκε ο Ritchie για τη δημιουργία της C.

  13. Σύντομη Ιστορία της C (3/5) • Κάποιες αλλαγές έγιναν 1977 - 1979, κατά την επίδειξη της ανεξαρτησίας του συστήματος Unix από αρχιτεκτονικές υπολογιστών. • Τότε εμφανίστηκε η πρώτη ευρέως διαθέσιμη περιγραφή της γλώσσας • Η αύξηση της δημοτικότητας των PC εκείνη την περίοδο οδήγησε στην διάδοση της γλώσσας και την εμφάνιση πολλών εφαρμογών αλλά και εκδόσεων της γλώσσας που δεν ήταν απόλυτα συμβατές μεταξύ τους.

  14. Σύντομη Ιστορία της C (4/5) • Tο 1983 συστάθηκε η επιτροπή ANSI X3J11 με σκοπό την προτυποποίηση της C • Πραγματοποιήθηκε το 1989 επιφέροντας μερικές επιπλέον αλλαγές στη γλώσσα. • Το πρότυπο ANSI C επέτρεψε τη δημιουργία μεταγλωττιστών ικανών να χειρίζονται το ίδιο σωστά όλα τα προγράμματα γραμμένα σε ANSI C

  15. Σύντομη Ιστορία της C (5/5) • Με την έλευση του αντικειμενοστρα-φούς προγραμματισμού δημιουρ-γήθηκε και η επέκταση της C με υποστήριξη αντικειμένων, η C++. • Σήμερα η C++ είναι μια από τις πιο διαδεδομένες γλώσσες ενσωματω-μένη σε ολοκληρωμένα εργαλεία ανάπτυξης εφαρμογών, • Π.χ. C++ Builder, Visual C++

  16. Έννοια multi-tasking • Multi-tasking θεωρούνται τα Λειτουργικά Συστήματα στα οποία ο χρήστης έχει τη δυνατότητα της παράλληλης εκτέλεσης πολλών διεργασιών • Οι χρονοβόρες διεργασίες δεν αναγκάζουν τον χρήστη να περιμένει την περάτωση τους σε περίπτωση που προκύψει κάτι επείγον • Η πολλαπλή εκτέλεση διεργασιών υλοποιείται με την τεχνική διαμοιρασμού-χρόνου (time-sharing). • Οι διεργασίες εκτελούνται κυκλικά για ένα μικρό προκαθορισμένο χρονικό διάστημα, μέχρι να περατωθούν.

  17. Έννοια multi-user • Multi-User Λειτουργικά Συστήματα ονομάζονται αυτά, που υποστηρίζουν πολλαπλούς χρήστες, οι οποίοι μπορούν να εργάζονται ταυτόχρονα.

  18. Επιθυμητές ιδιότητες • Διαμόρφωση του περιβάλλοντος εργασίας για κάθε χρήστη ξεχωριστά • Ασφάλεια (privacy) των ιδιωτικών δεδομένων • Μεταφερσιμότητα (portability) • Ο χρήστης δουλεύει στο ίδιο περιβάλλον και έχει πρόσβαση στα αρχεία του, με τον ίδιο τρόπο ανεξάρτητα από τον Η/Υ στον οποίο εργάζεται. • Επικοινωνία μεταξύ των χρηστών του συστήματος • Ανταλλαγής δεδομένων μεταξύ των χρηστών • Οικονομία • Κοινή χρήση διαθέσιμου λογισμικού και υλικού (εκτυπωτές, σαρωτές κ.τ.λ.) από πολλούς χρήστες.

  19. Υλοποίηση multi-user στο UNIX • Λογαριασμοί (accounts) • Οι λογαριασμοί ξεχωρίζουν μεταξύ τους με τα login names (ή user names). • Password • Κατάλογος στο Σύστημα Αρχείων του Λειτουργικού Συστήματος (home directory) • Eπιτυχής είσοδος (log on) • Το UNIX «διαβάζει» ορισμένα αρχεία που βρίσκονται στον προσωπικό του κατάλογο ώστε να προσαρμόσει το περιβάλλον εργασίας στις ανάγκες του χρήστη.

  20. Administrator • Ο λογαριασμός του Διαχειριστή του Συστήματος (Administrator ή root) έχει απεριόριστες δυνατότητες στο σύστημα • Δυνατότητα δημιουργίας και κατάργησης άλλων λογαριασμών

  21. Η Δομή του UNIX

  22. Πυρήνας (kernel) • Το τμήμα που αλληλεπιδρά άμεσα με το υλικό (hardware) του συστήματος. • Επικοινωνεί με όλες τις συσκευές του υπολογιστή • Παρέχει στο κέλυφος ένα σύνολο από απλές εντολές • π.χ. άνοιξε αρχείο • Το κέλυφος δεν χρειάζεται να γνωρίζει λεπτομέρειες για το συγκεκριμένο υλικό.

  23. Κέλυφος (shell) • Παίζει το ρόλο του διαμεσολαβητή ανάμεσα στον πυρήνα και στο χρήστη ή στις εφαρμογές • Ο χρήστης πληκτρολογεί εντολές στο κέλυφος • Αυτό είναι υπεύθυνο για την μετάφραση και την προώθηση τους σε κατάλληλη μορφή στον πυρήνα. • Το κέλυφος υπάρχει γιατί οι εντολές που χρησιμοποιεί ο πυρήνας είναι χαμηλού επιπέδου • Θα ήταν ιδιαίτερα δύσκολο και άβολο για τον χρήστη να εργάζεται με αυτές.

  24. Εφαρμογές (applications) • Προγράμματα τα οποία έχουν γραφεί σε γλώσσες προγραμματισμού (π.χ. C) ή στο ίδιο το κέλυφος και επιτελούν ορισμένες σύνθετες λειτουργίες. • Απλά: π.χ. αριθμομηχανή (calculator) • Σύνθετα: π.χ. πρόγραμμα μηχανοργάνωσης μιας επιχείρησης • Οι εφαρμογές επικοινωνούν με το κέλυφος για να διαβιβάσουν σε αυτό τις κατάλληλες εντολές.

  25. Σύστημα Αρχείων (File System) • Το σύστημα αρχείων του UNIX αποτελεί μια λογική μέθοδο οργάνωσης, αποθήκευσης, αναζήτησης και διαχείρισης δεδομένων. • Τα αρχεία είναι δομημένα σε μια ιεραρχία από καταλόγους για εύκολη αναζήτηση. • H έννοια του αρχείου είναι διευρυμένη • Σαν αρχεία αντιμετωπίζονται όλα τα συστατικά του συστήματος, ακόμη και οι υλικές συσκευές, όπως οι εκτυπωτές και οι σκληροί δίσκοι.

  26. Case sensitiveness • Στο UNIX οι χαρακτήρες που αντιστοιχούν στα πεζά γράμματα θεωρούνται διαφορετικοί από τους αντίστοιχους των κεφαλαίων γραμμάτων • input.txt, INPUT.TXT, Input.txt, input.TXT

  27. Τύποι Αρχείων • Κανονικά αρχεία (Ordinary files) • Σύνδεσμοι (links) ή hard links • Συμβολικοί σύνδεσμοι ή soft links • Κατάλογοι (Directories) • Ειδικά αρχεία (special files)

  28. Σύνδεσμοι (links) ή hard links • Παρέχουν τη δυνατότητα ύπαρξης πολλαπλών αντιγράφων ενός αρχείου σε διαφορετικούς υποκαταλόγους του ίδιου φυσικού μέσου. • Τα αντίγραφα υλοποιούνται μόνο σε λογικό επίπεδο. • Δεν δημιουργούνται πραγματικά αντίγραφα απλά σύνδεσμοι που ανακατευθύνουν οποιαδήποτε εντολή πάνω στον σύνδεσμο στο πραγματικό αρχείο.

  29. Συμβολικοί σύνδεσμοι ή soft links • Σύνδεσμοι οι οποίοι μπορούν να αναφέρονται και σε υποκαταλόγους αλλά και σε αρχεία διαφορετικών φυσικών μέσων αποθήκευσης • Μπορούν να αναφέρονται και σε αρχεία που βρίσκονται σε διαφορετικούς Η/Υ στο τοπικό δίκτυο ή ακόμη και σε απομακρυσμένα δίκτυα (π.χ μέσω του Διαδικτύου).

  30. Κατάλογοι (Directories) • Αρχεία, τα οποία τα χειρίζεται διαφορετικά το λειτουργικό σύστημα • Περιέχουν πληροφορίες για τα αρχεία και τους υποκαταλόγους ενός καταλόγου • Π.χ. ονόματα, μεγέθη, χαρακτηριστικά (attributes), δικαιώματα πρόσβασης κ.τ.λ.

  31. Ειδικά αρχεία (special files) • Βρίσκονται στον κατάλογο /dev/ • Παρέχουν τη σύνδεση με όλες τις συσκευές του Η/Υ • Π.χ. /dev/fd0 ή /dev/mouse κ.τ.λ. • Το UNIX επιτρέπει στο χρήστη να αντιμετωπίζει όλες τις συσκευές σαν αρχεία • Π.χ. μπορεί κάποιος να αντιγράψει αρχεία στο αρχείο που αντιστοιχεί στον εκτυπωτή και αυτά να εκτυπωθούν κ.τ.λ.

  32. Διεργασίες • Μια διεργασία είναι ένα στιγμιότυπο ενός προγράμματος που εκτελείται από το λειτουργικό σύστημα. • Η σχέση μεταξύ προγραμμάτων και διεργασιών δεν είναι 1 προς 1, • Η εκτέλεση ενός προγράμματος μπορεί να προκαλέσει την δημιουργία πολλών διεργασιών.

  33. Διεργασίες στο UNIX • Το UNIX είναι ένα πολυδιεργαστικό (multi tasking) λειτουργικό σύστημα • Ταυτόχρονη εκτέλεση πολλαπλών διεργασιών • Οι ενεργές διεργασίες στο UNIX δεν εκτελούνται πραγματικά ταυτόχρονα, • Ο αριθμός τους είναι πολύ μεγαλύτερος από τον αριθμό των επεξεργαστών του Η/Υ • Στα κοινά συστήματα = 1

  34. Χρονικός Διαμοιρασμός (Time sharing) • Συναντάται πολύ συχνά στα πολυδιεργαστικά λειτουργικά συστήματα. • Ο επεξεργαστής αφιερώνει ένα προκαθορισμένο χρονικό διάστημα για κάθε διεργασία • Στη συνέχεια αναλαμβάνει την επόμενη στη σειρά διεργασία • Όταν μία διεργασία περατωθεί ή ακυρωθεί, αφαιρείται από τη λίστα των διεργασιών • Ο επεξεργαστής συνεχίζει με τις υπόλοιπες

  35. Εκτέλεση στο Προσκήνιο • Όταν ο χρήστης ζητήσει την εκτέλεση ενός προγράμματος, πληκτρολογώντας το όνομα του στη γραμμή εντολών, ο έλεγχος θα επανέλθει στη γραμμή εντολών μετά την περάτωση του προγράμματος • Οι διεργασίες που ξεκινούν με αυτό τον τρόπο λέγεται ότι εκτελούνται στο προσκήνιο (foreground) επειδή παρακρατούν τον έλεγχο του τερματικού μέχρι την περάτωση τους.

  36. Πολλαπλή Εκτέλεση Λειτουργιών σε Παραθυρικό Περιβάλλον • Σε ένα σύστημα UNIX με υποστήριξη γραφικών (Χ Windows) ο χρήστης μπορεί να έχει περισσότερα από ένα τερματικά ανοιχτά • Ακόμη και αν κάποιο είναι δεσμευμένο από μια εντολή που τρέχει στο προσκήνιο μπορεί να συνεχίσει να δουλεύει χρησιμοποιώντας κάποιο άλλο τερματικό.

  37. Εκτέλεση στο Παρασκήνιο • Όταν δεν υπάρχει παραθυρικό περιβάλλον η δυνατότητα ταυτόχρονης εκτέλεσης πολλών διεργασιών παρέχεται μέσω της εκτέλεσης διεργασιών στο παρασκήνιο (background). • Μια διεργασία που εκτελείται στο παρασκήνιο χρησιμοποιεί το τερματικό μόνο όταν χρειάζεται να τυπώσει κάποιο μήνυμα ή να δεχτεί είσοδο από το πληκτρολόγιο. • Στον υπόλοιπο χρόνο εκτελείται "σιωπηλά" και το τερματικό παραμένει ελεύθερο για νέες εντολές.

  38. Δαίμονες (daemons) • Με την εκκίνηση δημιουργούνται διεργασίες του παρασκηνίου • Μένουν ενεργές καθ' όλη τη διάρκεια λειτουργίας του συστήματος • Εκτελούν εργασίες ζωτικής σημασίας. • Ονομάζονται δαίμονες • H διαχείριση τους γίνεται από τον διαχειριστή (administrator) • Συνήθεις δαίμονες: εκτύπωση (lpd), ηλεκτρονικό ταχυδρομείο (maild), δικτυακές υπηρεσίες (telnetd, ftpd) κ.α.

  39. Δικαιώματα Αρχείων και Καταλόγων • To UNIX είναι ένα multi-user λειτουργικό σύστημα • Το χρησιμοποιούν πολλοί χρήστες. • Οι χρήστες επιθυμούν δύο πράγματα που αφορούν τα δεδομένα τους: • α) να προστατεύονται από τους υπόλοιπους χρήστες του συστήματος (Ιδιωτικότητα των δεδομένων) και • β) να μπορούν να τα μοιράζονται με όποιους χρήστες επιθυμούν οι ίδιοι, κάτω από απόλυτα ελεγχόμενες συνθήκες.

  40. Δικαιώματα Αρχείων και Καταλόγων • Τα δικαιώματα (permissions) καθορίζουν: • Ποιοι έχουν δικαίωμα πρόσβασης σε κάποιο αρχείο ή σε κάποιο κατάλογο • Τι ακριβώς μπορούν να κάνουν με αυτό το αρχείο ή τον κατάλογο.

  41. Χαρακτηριστικά (attributes) • Για κάθε αρχείο (και κατάλογο) υπάρ-χουν χαρακτηριστικά που καθορίζουν τα δικαιώματα χρήσης του: • Ο ιδιοκτήτης (owner) του αρχείου • Η ομάδα (group) χρηστών στην οποία ανήκει το αρχείο • Τα δικαιώματα του ιδιοκτήτη • Τα δικαιώματα της ομάδας • Τα δικαιώματα των υπόλοιπων χρηστών του συστήματος

  42. Ιδιοκτήτης Αρχείου (owner) • Συνήθως ο χρήστης που το δημιούργησε • Υπάρχει η δυνατότητα να αλλάξει ο ιδιοκτήτης • Είναι ο μόνος (από τους απλούς χρήστες) που μπορεί να τροποποιήσει τα δικαιώματα χρήσης

  43. Ομάδες Χρηστών • Οι ομάδες δίνουν τη δυνατότητα σε κάποιους χρήστες να μοιράζονται κάποια αρχεία • Μπορεί να δουλεύουν μαζί σε κάποια εργασία-πρόγραμμα • Μπορεί να απαγορευτεί η πρόσβαση αρχείων σε χρήστες που δεν ανήκουν στην ίδια ομάδα

  44. Επικοινωνία στο UNIX • Το UNIX υποστηρίζει πολλαπλούς χρήστες • Μπορούν να χρησιμοποιούν (ακόμη και ταυτόχρονα) τους διαθέσιμους πόρους του συστήματος • Η επικοινωνία μεταξύ των χρηστών είναι μία επιθυμητή ιδιότητα • Το UNIX διαθέτει ένα σημαντικό αριθμό από εντολές, που υλοποιούν αυτήν την επικοινωνία.

  45. Κελύφη (command shells) • Στο UNIX συνήθως ο χρήστης αιτείται την εκτέλεση εντολών • Π.χ. εντολή ls για να δει τα αρχεία του τρέχοντος καταλόγου • Τις αιτήσεις του χρήστη (δηλαδή τις εντολές που πληκτρολογεί) τις δέχεται το τμήμα του λειτουργικού που ονομάζεται κέλυφος (shell).

  46. Κελύφη (command shells) • Το κέλυφος μεταβιβάζει τις εντολές στον πυρήνα του UNIX • Αποσυνθέτει τις εντολές στα στοιχειώδη μέρη τους • Μεταφράζει τις εντολές σε γλώσσα κατανοητή από τον πυρήνα • Ο πυρήνας επιστρέφει τα αποτελέσματα στο κέλυφος • Όταν τελειώσει την εκτέλεση • Το κέλυφος εμφανίζει τα αποτελέσματα στο χρήστη • Σε μορφή κατανοητή από αυτόν

  47. Διάφορα Κελύφη • Bourne shell - sh • Το πρώτο κέλυφος για UNIX (Steve Bourne) • Αποτελεί μέχρι και σήμερα το προκαθορισμένο κέλυφος για αρκετά συστήματα UNIX. • Εμπλουτίστηκε με τον καιρό • Αναπτύχθηκαν αρκετά άλλα κελύφη τα οποία προσφέρουν επιπλέον δυνατότητες • Διατηρούν τη συμβατότητα με το sh • C shell (csh), βελτιωμένο C shell (tcsh), Korn shell (ksh), POSIX shell (psh), δεύτερη έκδοση του Bourne shell (bash), zsh

  48. Είσοδος και έξοδος από τοΣύστημα • Κάθε φορά που ένας χρήστης κάνει login εκτελείται αυτόματα ένα κέλυφος (συνήθως το sh) από το λειτουργικό σύστημα • login shell • Το κέλυφος που εκτελείται κατά την είσοδο καθορίζεται από το αρχείο /etc/passwd • Περιέχει όλες τις πληροφορίες που χρειάζεται το UNIX για τους χρήστες του συστήματος • Π.χ. login names, passwords, login shells, home directories κ.α.

  49. Είσοδος και έξοδος από τοΣύστημα • Το sh εκτελεί τις εντολές που περιέχονται στο αρχείο ".profile" • Στο home directory του χρήστη • Στη συνέχεια το κέλυφος τυπώνει ένα σύμβολο • Έτοιμο για να δεχτεί εντολές. • prompt(=προτροπή) • Η έξοδος από το κέλυφος σημαίνει έξοδο από το UNIX • exit - logout - CTRL-D

  50. Ανακατεύθυνση Εισόδου και Εξόδου • To UNIXχειρίζεται τα αρχεία με γενικό τρόπο • Με ευκολία καθορίζονται: • Η πηγή από την οποία παίρνει είσοδο μία εντολή • Το μέσο (αρχείο, οθόνη, συσκευή) στο οποίο θα σταλούν τα αποτελέσματα της • Η ευελιξία οφείλεται στην αρχή της προκαθορισμένης εισόδου και εξόδου (standard input & standard output ή standard I/O)

More Related