Νσίπληρ Νικόλαορ- ΕΣΤ 1 ο Υπονσιςσήπιο Παπαςκετή, 11/10/2013 Β4. Λεισοτπγικά τςσήμασα- Υπονσιςσήπιο

Σχετικά έγγραφα
Χπιςσόυοπορ Παναγιώσοτ

Ψηυιακά δεδομένα (data) :είναι δεδομένα ποτ έφοτν αναπαπαςσαθεί με κάποιο σπόπο (κψδικοποίηςη), είναι αποθηκετμένα ςε τπολογιςσή και είναι δτνασόν να

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου. Λειτουργικά Συστήματα Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου

ΕΠΙΜΕΛΕΙΑ: ΟΥΙΑ ΚΟΝΣΑΞΑΚΗ, ΑΠΟΠΑΜΕΝΗ ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19-ΠΛΗΡΟΥΟΡΙΚΗ ΣΗ ΔΙΕΤΘΤΝΗ ΠΕ ΜΕΗΝΙΑ ΙΑΝΟΤΑΡΙΟ Τποτπγείο Παιδείαρ, Έπετναρ και Θπηςκετμάσψν

Ταξινόμηςη Ετθείαρ Ανσαλλαγήρ (Φτςαλίδα) και με Επιλογή

Aπγτποπούλοτ, Μαπία Ιψάννα, Kλινικόρ Ψτφολόγορ, MSc, Ph.D. - Ψτφοθεπαπεύσπια Γνψςιακήρ / Στμπεπιυοπιςσικήρ κασεύθτνςηρ

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου

Σεμινάπια Επμούποληρ 2013

Σι είναι κιπςοί σψν κάσψ άκπψν;

Βιομηφανικοί Ατσομασιςμοί

Ελένη Προκοπίου M.S. CCC-SLP 7 Οκτωβρίου 2014

. 3. Να ανσιςσοιφούμε σοτρ υτςικούρ απιθμών ςε ςημεία ενόρ άξονα. 4. Την έννοια και ση φπήςη σηρ ςσπογγτλοποίηςηρ σψν υτςικών απιθμών.

Κλαμα σοτ εμιγκπανσοτ 1. Ειναι ενα σπαγοτδι σψν Ελληνψν σηρ Κασψ Ισαλιαρ. Ο σισλορ σοτ, ςση νεοελληνικη σοτ αποδοςη: "Θπηνορ σοτ. σοςο εφει να με δει

ΘΔΜΑ: ΔΦΗΒΟΙ ΚΑΙ ΓΙΑΓΙΚΣΤΟ. 3 ο ΓΤΜΝΑΙΟ ΑΛΔΞΑΝΓΡΟΤΠΟΛΗ «ΓΟΜΝΑ ΒΘΣΒΘΖΗ» ΥΟΛΙΚΟ ΔΣΟ:

ςε ένα Σύςσημα Παπαγψγήρ Κειμένψν Φτςικήρ Γλώςςαρ Γιώπγορ Καπακασςιώσηρ

Βιοαςυάλεια ςσιρ πσηνοσπουικέρ εκμεσαλλεύςειρ. Τι μποπεί να κάνει ο παπαγψγόρ;;;

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

ΠΕΣΡΑΚΗ ΓΙΑΝΝΗ ΠΡΟΠΟΝΗΣΗ UEFA PRO

Ομάδα Γλώςςαρ ( ) Γ. Κούμα, ΕΜΕ, Δπ. Ειπ. Ροδοςθένοτρ, Β. Παπαδάκη, Μ. σευάνοτ, Μ. Κτππιανού, Π. Φπτςοςσόμοτ, Κ. Κψνςσανσίνοτ, Γ.

Μππάσσηρ Πανσελήρ, Κοτήρ Δημήσπιορ, Ετθτμίοτ Φψσεινή

Βαγγέληρ Οικονόμοτ Διάλεξη 5. Διαμόπυψςη ήμασορ - Ειςαγψγικέρ Έννοιερ - Διάλεξη 5 1

Έναπξη μαθημάσων: 28 Μαπσίοτ Εκπαιδετόμενοι: Πποέπφονσαι σόςο από φώπερ σηρ Ετπωπαϊκήρ Ένωςηρ όςο και από σπίσερ φώπερ.

ΓΔΝΙΚΗ ΤΝΔΛΔΤΗ ΚΔΝΣΡΙΚΗ ΔΝΧΗ ΔΠΙΜΔΛΗΣΗΡΙΧΝ ΔΛΛΑΓΟ ΘΔΑΛΟΝΙΚΗ ΦΙΛΟΞΔΝΙΑ ΔΒΔΘ

Βιομηφανικοί Ατσομασιςμοί

ΜΟΡΥΕ- ΚΛΙΝΙΚΗ ΔΙΕΡΕΤΝΗΗ. Αθ.Ι. Τριανταυύλλοσ δντής καρδ.κλ. 3 οσ νοσ. ΙΚΑ

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Σι είναι η καπωσιδική ςσένωςη; Ποιερ είναι οι ςτνέπειερ σηρ;

Επιυύλη Παςπάση Υπ. Διδ. Πανσείοτ Πανεπιςσημίοτ. Αππίλιορ 2014

ΟΣΑΝ ΠΡΩΣΟΚΑΣΕΒΗΚΑ ΣΗ ΜΤΡΝΗ, ΔΙΔΩ ΩΣΗΡΙΟΤ

Βικσψπία Π. Βαλενσίν Νσ. Μαπία Σ.

Κασαγπαυή σηρ λετκοπάθειαρ και άλλψν δτςμοπυιών ςε άγπια ζώα σηρ Ελλάδαρ και Κύπποτ

Βίκη Νσπίσςοτ Οικονομικό Πανεπιςσήμιο Αθηνών

Μεταφραστής (Compiler)

σοτ Μιλσιάδη Νεκσάπιοτ, Αναπληπψσή Καθηγησή Αςυαλιςσικήρ Επιςσήμηρ, Πανεπιςσήμιο Πειπαιύρ.

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

Καθηγήσπια Μαίπη Κοτσςελίνη Σμήμα Επιςσημών σηρ Αγψγήρ Πανεπιςσήμιο Κύπποτ. Έδπα ΟΤΝΕΚΟ για σην Ιςόσησα και Ενδτνάμψςη σψν Υύλψν

ΜΗΦΑΝΙΚΗ ΣΕΡΕΟΤ ΩΜΑΣΟ

Νσίπληρ Νίκορ- ΕΣΤ 4ο ΥΡΟΝΣΙΣΗΡΙΟ Παπαςκετή Β4

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4

Βιομηφανικοί Ατσομασιςμοί

Λούηρ Μ. Λοΐζοτ. Υεβποτάπιορ 2010

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

IAAF CECS Level I Lecturers Course

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

ΘΔΜΑ: Ο Ernst May και «Η καινούπια Φπανκυούπση».

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

21 ο Εθνικό τνέδπιο «Ενέπγεια & Ανάπστξη 2016» Ίδπτμα Ετγενίδοτ, Αθήνα, Οκσωβπίοτ 2016

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

Παράλληλη Επεξεργασία

Εισαγωγικό εργαστήριο C

Η Ευρωπαϊκή Ένωση - «Το Χαμόγελο του Παιδιού»: Δράσεις και πρωτοβουλίες για την καταπολέμηση του σχολικού εκφοβισμού στην Ελλάδα και την Ευρώπη.

ΕΙΣΑΓΩΓΗ ΣΤΟ ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ι Βάνα Ντουφεξή

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

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

Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού

Δειγματοληυία νερού για ανίτνεσση λεγεφνέλλας.

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

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Ενότητα 1 Διάλεξη 1β

Σύντομη εισαγωγή στο Unix

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

make Προγραμματισμός II 1

ΕΠΛ 371 Προγραµµατισµός Συστηµάτων. Διάλεξη 1. Εισαγωγή. Δηµήτρης Ζεϊναλιπούρ 1-1

Σύντομη εισαγωγή στο Unix

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

Εισαγωγή στα Λειτουργικά Συστήματα

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

25 29 Οκσψβπίοτ 2008 Υπανκυούπση, Γεπμανίαρ. Andy Roxburgh, UEFA Σεφνικόρ Διετθτνσήρ

Ποζοηικοποίηζη ωθελειών από ηη τρήζη ηων ΤΠΕ: Επιτειρήζεις, πολίηες, περιβάλλον

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών. Οδηγίες εργαστηρίου. Συστήματα Παράλληλης Επεξεργασίας 9 ο Εξάμηνο

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

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

ΑΙΣΗΗ ΤΠΟΧΗΥΙΟΤ. Για ςυμμετοχή ςτο χέδιο Δράςησ:

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

Ελεύθερο Ανοικτό Λογισμικό

Εγκατάσταση Synology DSM 5.1 (Linux Server/Samba/Web Server (Apache)/MySQL Database/ Server/File Server

Στοιχεία Επικοινωνίας

Προγραμματισμός Συστημάτων

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Μια εισαγωγή στο Linux με την διανομή Fedora. Βάιος Κολοφωτιάς MSc Informational Systems

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

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

Εισαγωγή στο Linux. Κοινότητα Ελεύθερου Λογισμικού & Λογισμικού Ανοιχτού Κώδικα ΟΠΑ. Εισαγωγή στο Linux 09/05/2009

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΗΥ-100 Ειζαγωγή ζηην Επιζηήμη Υπολογιζηών

Λειτουργικό σύστημα Unix

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

Transcript:

Νσίπληρ Νικόλαορ- ΕΣΤ 1 ο Υπονσιςσήπιο Παπαςκετή, 11/10/2013 Β4 Υπονσιςσήπιο 1

Κάθε Παπαςκετή 13:00-15:00 Παπαδόςειρ: Δετσέπα 13:00-16:00 Κύπιορ ςσόφορ σοτ Υπονσιςσηπίοτ είναι η βοήθεια ςε ππακσικά θέμασα ποτ αυοπούν (κτπίψρ!) σιρ αςκήςειρ σοτ μαθήμασορ. Υπονσιςσήπιο 2

Εξοικείψςη με θεμελιώδειρ έννοιερ και μηφανιςμούρ ποτ πποςυέπει σο λεισοτπγικό ςύςσημα UNIX και σα UNIX-like ςτςσήμασα δημιοτπγία/διαφείπιςη διεπγαςιών επικοινψνία διεπγαςιών Γλώςςα ππογπαμμασιςμού C Κλήςη ςτςσήμασορ fork Φπήςη Sockets Μονσέλο Πελάση- Εξτπηπέση (Client-Server model) Φπήςη Shared memory Φπήςη Semaphores Φπήςη Signals Υπονσιςσήπιο 3

Λεισοτπγικό ύςσημα: 1) Διαφείπιςη Πόπψν 2) Μηφανή Αυαίπεςηρ: α) Διεπγαςίερ β) Απφεία Πτπήναρ (Kernel) Λ.: 1) Kύπιο σμήμα σοτ Λ. 2) Yλοποιεί σιρ δύο βαςικέρ ονσόσησερ (processes και files) σοτ Λ.. Σπόποι Λεισοτπγίαρ: 1) User Mode 2) Kernel Mode (ο φπήςσηρ δεν μποπεί να επέμβει) Υπονσιςσήπιο 4

Διεπγαςίερ: Για να μποπέςει μια διεπγαςία φπήςση (user process) να φπηςιμοποιήςει σοτρ πόποτρ ππέπει να καλέςει σιρ κασάλληλερ ποτσίνερ σοτ kernel. Ατσό επιστγφάνεσαι μέςψ system calls Σο κάθε system call τλοποιείσαι μέςψ μίαρ ποτσίναρ η οποία βπίςκεσαι ςε μία βιβλιοθήκη ποτ ςτνδέεσαι (linked) με σον κώδικα σηρ user process. Όλερ οι ποτσίνερ ατσήρ σηρ βιβλιοθήκηρ εκσελούν μία ειδική ενσολή, ποτ ονομάζεσαι TRAP. Η ενσολή TRAP είναι ατσή η οποία αλλάζει σο ςύςσημα από user mode ςε kernel mode H κάθε διεπγαςία ανσιπποςψπεύει ένα εκσελούμενο ππόγπαμμα. Οι διεπγαςίερ μποπούν να έφοτν και μία ιεπαπφική ςφέςη. τφνά φπειάζεσαι να κοινοποιήςει ο kernel ςε ένα process πληπουοπία. Ατσό επιστγφάνεσαι με σην φπήςη σψν signals Υπονσιςσήπιο 5

Απφεία: Σα απφεία είναι οπγανψμένα ςε ομάδερ ποτ ονομάζονσαι κασάλογοι (directories). Έναρ κασάλογορ μποπεί να πεπιέφει έναν άλλο κασάλογο, και έσςι δημιοτπγείσαι ένα ιεπαπφικό ςύςσημα διαφείπιςηρ απφείψν (file system). Πέπα από σην φπηςιμοποίηςη σψν απφείψν από σοτρ φπήςσερ για μη-πποςψπινά δεδομένα, σα απφεία πποςυέποτν και ένα σπόπο τχηλού-επιπέδοτ ππόςβαςηρ ςε πεπιυεπειακέρ ςτςκετέρ Pipes: Φπηςιμοποιείσαι ώςσε δύο διεπγαςίερ να ανσαλλάξοτν πληπουοπίερ Σο «file» αποσελεί μια αυαίπεςη (abstraction) για πολλά είδη I/O: με πεπιυεπειακέρ ςτςκετέρ (π.φ., δίςκοτρ, σεπμασικά) και με διαδιεπγαςσική επικοινψνία (interprocess communication). Υπονσιςσήπιο 6

Μονολιθικά: ε ατσά σα ςτςσήμασα δεν τπάπφει καμία δομή όςον αυοπά σην οπγάνψςη σψν ποτσινών σοτ Λ. Μικπο-πτπήνερ: Ατσή η πποςέγγιςη βαςίζεσαι ςση υιλοςουία ο πτπήναρ σοτ Λ.. να είναι όςο σον δτνασόν μικπόσεπορ. Ροτσίνερ οι οποίερ παπαδοςιακά βπίςκονσαν ςσον πτπήνα (kernel) σώπα βπίςκονσαι έξψ απ ατσόν Υπονσιςσήπιο 7

«The Tanenbaum-Torvalds debate was a debate between Andrew S. Tanenbaum and Linus Torvalds, regarding Linux and kernel architecture in general. Tanenbaum began the debate in 1992 on the Usenet discussion group comp.os.minix, arguing that microkernels are superior to monolithic kernels and therefore Linux was, even in 1992, obsolete.» Υπονσιςσήπιο 8

Android, BSD, ios, Linux, OS X, QNX, Microsoft Windows,Windows Phone, IBM z/os Σα πεπιςςόσεπα από σα παπαπάνψ (εκσόρ από σα Windows) έφοτν σιρ πίζερ σοτρ ςσο Unix Υπονσιςσήπιο 9

Δεκαεσία σοτ 60 : Σο UNIX είναι Λ. ποτ αναπσύφθηκε κασά σιρ δεκαεσίερ σοτ 1960 και σοτ 1970 από ομάδα επγαζομένψν σψν επγαςσηπίψν Bell Labs) σηρ εσαιπείαρ AT&T (σην ίδια εσαιπεία ποτ ανέπστξε ση γλώςςα ππογπαμμασιςμού C). Δεκαεσία σοτ 80 : Σο MINIX είναι ένα Unix-like Λ.. βαςιζόμενο ςση ςφεδιαςσική σεφνική σψν μικπο-πτπήνψν ποτ δημιοτπγήθηκε από σον Andrew S. Tanenbaum ςσο Vrije Universiteit σοτ Amsterdam για εκπαιδετσικούρ ςκοπούρ. Σο 1987 μποπούςε κάποιορ να φπηςιμοποιήςει σο MINIX αν είφε μια κόπια σψν 12,000 γπαμμών κώδικα ςε C (kernel, memory manager και file system σοτ MINIX 1.0) ςε ένα floppy disk σηρ εποφήρ. Σην ίδια δεκαεσία αναπσύφθηκε και σο GNU project από σον Richard Stallman. Υπονσιςσήπιο 10

Δεκαεσία σοτ 90 : Σο 1991, ο Linus Torvalds υοισησήρ ςσο University of Helsinki in Finland ξεκίνηςε να πειπαμασίζεσαι ςε ένα Unix-like Λ.. Μεσά από 6 μήνερ δοτλειάρ απουάςιςε όσι η λεισοτπγικόσησα σοτ project σοτ δεν ήσαν η επιθτμησή και έσςι απουάςιςε να ανεβάςει σον κώδικά σοτ ςσο διαδίκστο. φεσικά ςύνσομα αναπσύφθηκε μια κοινόσησα 40.000 φπηςσών και ππογπαμμασιςσών ποτ δούλεχαν πάνψ ςσο Linux κάσψ από σην GNU άδεια. Υπονσιςσήπιο 11

Η πιο «trendy» λύςη είναι σο Virtualbox! Δίνει ση δτνασόσησα να έφοτμε ςσο ίδιο μηφάνημα πολλά λεισοτπγικά ςτςσήμασα σατσόφπονα (σο καθένα σπέφει ςσο δικό σοτ sandbox). Για παπάδειγμα πολλέρ διανομέρ σοτ Linux ή ακόμα και να μποπούμε να «παίζοτμε» από σα Windows μαρ με Mac OS! Μοναδικό μειονέκσημα: Απόδοςη Τπάπφοτν «άπειπα» φπηςσικά tutorials ςσο διαδίκστο. Έναρ οδηγόρ για ατσούρ ποτ «βαπιούνσαι» σο διάβαςμα: http://www.youtube.com/watch?v=vx5mhjt3qgy Μποπείσε να κασεβάςεσε σο Virtualbox από εδώ: https://www.virtualbox.org/wiki/downloads Υπονσιςσήπιο 12

Κασεβάςσε σην καινούπγια έκδοςη από εδώ: http://ubuntu-gr.org/ (επιςκευσείσε οπψςδήποσε και σο εξαιπεσικό Forum με πολλά tutorials ακόμα και με θέμασα ποτ δεν έφοτν να κάνοτν αναγκαςσικά με Linux) Τπάπφει η δτνασόσησα να κασεβάςεσε έσοιμο ςσημένο ςύςσημα πφ από εδώ: http://virtualboxes.org/images/ubuntu/ αν και είναι ςαυώρ πιο «χαγμένο» να πτθμίςεσε εςείρ σιρ παπαμέσποτρ σηρ εικονικήρ μηφανήρ ςαρ (τπάπφοτν άπειπα online tutorials) Υπονσιςσήπιο 13

Με ση βοήθεια σηρ ευαπμογήρ DEV++ από σην ιςσοςελίδα σηρ bloodshed: http://www.bloodshed.net/ Δεν σο ςτνιςσούμε όμψρ! Υπονσιςσήπιο 14

Σι φπειάζομαι για να ππογπαμμασίςψ ςσα Ubuntu; Ατσά ποτ φπειάζεςσε είναι ένα σεπμασικό και ένα editor σηρ επιλογήρ ςαρ. Σεπμασικό: Applications/Accessories/Terminal Εditor: gedit Applications/Accessories/text editor Υπονσιςσήπιο 15

cd : cd.. (ανέβα ένα επίπεδο πάνψ) cd ~ (πήγαινέ με ςσο home dir μοτ) pwd (ποτ βπίςκομαι) ls,mkdir, rmdir, mv, rm, cp και υτςικά: man <όνομα> για να μάθοτμε σι κάνοτν όλα σα παπαπάνψ! Υπονσιςσήπιο 16

Ππιν από οσιδήποσε άλλο μια ςτμβοτλή: Υσιάξσε ετανάγνψςσοτρ κώδικερ! ψςσή δομή, επαπκή ςφόλια Επαπκή ςφόλια = 60% σψν ςτνολικών γπαμμών είναι ςφόλια ( 1-2 γπαμμέρ ςφόλια για κάθε 1 γπαμμή πηγαίοτ κώδικα) ψςσή φπήςη tabs-spaces ψςσή δομή ςε ςτναπσήςειρ / τπο-απφεία Υπονσιςσήπιο 17

σην ππαγμασικόσησα θα δείξοτμε πψρ κάνοτμε compile + link + run. Δημιοτπγία απφείοτ helloworld.c ςσο getit gcc helloworld.c Δημιοτπγία απφείοτ a.out ςσον ίδιο υάκελο (ελέγξσε με ls)./a.out Υπονσιςσήπιο 18

gcc -Wall helloworld.c -o helloworld ημαίνει: «κάνε compile και link σο helloworld.c και υσιάξε σο εκσελέςιμο helloworld» Για να «σπέξψ» σο helloworld γπάυψ:./helloworld Υπονσιςσήπιο 19

gcc -Wall -c helloworld.c gcc helloworld.o -o helloworld Σο σπέφψ πάλι με:./helloworld ε κάθε βήμα κάνψ ls για να δψ σα απφεία ποτ δημιοτπγούνσαι. Υπονσιςσήπιο 20

main.c #include <stdio.h> void hello(const char *name) { printf("hello %s!\n", name); } hello.c void hello(const char *); int main(int argc, char **argv) { hello("world"); return 0; } Υπονσιςσήπιο 21

terminal $ gcc -Wall -c main.c $ gcc -Wall -c hello.c $ gcc main.o hello.o -o hello $./hello Hello World! Υπονσιςσήπιο 22

Διεπαυή ππορ άλλα κομμάσια κώδικα (API) Πεπιέφοτν ππόστπα και δηλώςειρ τναπσήςειρ Καθολικέρ (global) μεσαβλησέρ.h απφεία preprocessor: #include "header.h" Υπονσιςσήπιο 23

hello.h void hello(const char *); hello.c #include <stdio.h> void hello(const char *name) { printf("hello %s!\n", name); } main.c #include "hello.h" int main(int argc, char **argv) { hello("world"); return 0; } Υπονσιςσήπιο 24

int main(int argc, char **argv) argc: Απιθμόρ οπιςμάσψν ππογπάμμασορ argv: Πίνακαρ με σα οπίςμασα argv[0]: Σο όνομα σοτ ππογπάμμασορ Παπάδειγμα: απφείο args.c #include <stdio.h> int main(int argc, char **argv) { int i; for (i=0; i<argc; i++) printf("%d %s\n", i, argv[i]); return 0; } Υπονσιςσήπιο 25

σο Σεπμασικό:./args arg1 arg2 0./args 1 arg1 2 arg2 Εναλλακσικά: gcc args.c./a.out arg1 arg2 Υπονσιςσήπιο 26