Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Qdata » 21 Ιούλ 2011, 00:32

stamatiou έγραψε:Αυτό το βιβλίο είναι για Kernel ή για όλα αυτα που είπε ο φίλος migf1 εκτός από τις στοίβες;
Πώς γίνεται να μάθω να κάνω αυτό με τα αρχεία(το οποίο πάλι δεν πολυκατάλαβα :cry: )


Όχι, αυτό το βιβλίο εξηγεί κάποιες έννοιες για τα λειτουργικά.Δεν μπορώ να πω πως με αυτό θα μάθεις για τον kernel του Linux.
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 21 Ιούλ 2011, 01:31

Qdata έγραψε:
stamatiou έγραψε:Αυτό το βιβλίο είναι για Kernel ή για όλα αυτα που είπε ο φίλος migf1 εκτός από τις στοίβες;
Πώς γίνεται να μάθω να κάνω αυτό με τα αρχεία(το οποίο πάλι δεν πολυκατάλαβα :cry: )


Όχι, αυτό το βιβλίο εξηγεί κάποιες έννοιες για τα λειτουργικά.Δεν μπορώ να πω πως με αυτό θα μάθεις για τον kernel του Linux.


Ναι για τον Kernel του Linux 100% δεν ειναι αυτο το βιβλιο... αλλα λεει μεσα αρκετα πραγματα τουλαχιστον στην 2η αμερικανικη εκδοση
εσυ τι εχεις να προτεινεις :angel:

stamatiou έγραψε:
Πώς γίνεται να μάθω να κάνω αυτό με τα αρχεία(το οποίο πάλι δεν πολυκατάλαβα :cry: )


θα το δουμε στα μαθηματα των δικτυων αυτο
θα παραμετροποιησουμε τα απλα αρχεια /etc/network/interfaces & /etc/resolv.conf

Π.Σ Τα αρχεια μεσα εχουν οδηγιες τις οποιες διαβαζουν οι διαφορες διεργασιες του λειτουργικου συστηματος για να κανουν την δουλεια τους... περα απο το να αποκτησεις μια αλφα εμπειρια με αυτα που θα κανουμε για την παραμετροποιηση δεν χρειαζεται να ξερεις απεξω για τις παραμετροποιησεις διαφορων αρχειων μιας και οταν θα χρειαστει να κανεις μια δικια σου (αφου εχεις μια αλφα εμπειρια) θα εισαι σε θεση να ψαξεις ΠΩΣ θα την κανεις.... η λογικη θα ειναι η ιδια απλα θα αλλαζουν οι οδηγιες - ντιρεκτιβες που θα βαζεις μεσα στα αρχεια ;) τωρα για αλλα αρχεια που παιζουν στο grub.d δεν μπορω να βοηθησω καθως δεν γνωριζω bash scripting.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 21 Ιούλ 2011, 01:46

Star_Light έγραψε:
Qdata έγραψε:
stamatiou έγραψε:Αυτό το βιβλίο είναι για Kernel ή για όλα αυτα που είπε ο φίλος migf1 εκτός από τις στοίβες;
Πώς γίνεται να μάθω να κάνω αυτό με τα αρχεία(το οποίο πάλι δεν πολυκατάλαβα :cry: )


Όχι, αυτό το βιβλίο εξηγεί κάποιες έννοιες για τα λειτουργικά.Δεν μπορώ να πω πως με αυτό θα μάθεις για τον kernel του Linux.


Ναι για τον Kernel του Linux 100% δεν ειναι αυτο το βιβλιο... αλλα λεει μεσα αρκετα πραγματα τουλαχιστον στην 2η αμερικανικη εκδοση
εσυ τι εχεις να προτεινεις :angel:

stamatiou έγραψε:
Πώς γίνεται να μάθω να κάνω αυτό με τα αρχεία(το οποίο πάλι δεν πολυκατάλαβα :cry: )


θα το δουμε στα μαθηματα των δικτυων αυτο
θα παραμετροποιησουμε τα απλα αρχεια /etc/network/interfaces & /etc/resolv.conf

Π.Σ Τα αρχεια μεσα εχουν οδηγιες τις οποιες διαβαζουν οι διαφορες διεργασιες του λειτουργικου συστηματος για να κανουν την δουλεια τους... περα απο το να αποκτησεις μια αλφα εμπειρια με αυτα που θα κανουμε για την παραμετροποιηση δεν χρειαζεται να ξερεις απεξω για τις παραμετροποιησεις διαφορων αρχειων μιας και οταν θα χρειαστει να κανεις μια δικια σου (αφου εχεις μια αλφα εμπειρια) θα εισαι σε θεση να ψαξεις ΠΩΣ θα την κανεις.... η λογικη θα ειναι η ιδια απλα θα αλλαζουν οι οδηγιες - ντιρεκτιβες που θα βαζεις μεσα στα αρχεια ;) τωρα για αλλα αρχεια που παιζουν στο grub.d δεν μπορω να βοηθησω καθως δεν γνωριζω bash scripting.

Δηλαδή (για να καταλαβαινόμαστε) για να κάνω αυτά τα απλά πρέπει να ξέρω bash και το linux σε βάθος;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 21 Ιούλ 2011, 02:12

stamatiou έγραψε:
Δηλαδή (για να καταλαβαινόμαστε) για να κάνω αυτά τα απλά πρέπει να ξέρω bash και το linux σε βάθος;


Δηλαδη για να καταλαβαινομαστε..... ποια αυτα? :P :P :P

Σιγα σιγα μαθαινεις. ;)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 21 Ιούλ 2011, 09:54

Star_Light έγραψε:
stamatiou έγραψε:
Δηλαδή (για να καταλαβαινόμαστε) για να κάνω αυτά τα απλά πρέπει να ξέρω bash και το linux σε βάθος;


Δηλαδη για να καταλαβαινομαστε..... ποια αυτα? :P :P :P

Σιγα σιγα μαθαινεις. ;)

Θέλω πχ. κάθε φορά που ανοίγει το τέρμιναλ να τυπώνει "Καλημέρα!", γίνεται με C;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Qdata » 21 Ιούλ 2011, 10:02

stamatiou έγραψε:
Star_Light έγραψε:
stamatiou έγραψε:
Δηλαδή (για να καταλαβαινόμαστε) για να κάνω αυτά τα απλά πρέπει να ξέρω bash και το linux σε βάθος;


Δηλαδη για να καταλαβαινομαστε..... ποια αυτα? :P :P :P

Σιγα σιγα μαθαινεις. ;)

Θέλω πχ. κάθε φορά που ανοίγει το τέρμιναλ να τυπώνει "Καλημέρα!", γίνεται με C;


Ε τέτοια θέματα δεν γίνονται με C.Είπαμε η C έχει μεγάλο μέρος στο Linux αλλά όχι και σε bash/εφαρμογές πάντα.Για να το κάνεις αυτό δες αυτό το post μου=> viewtopic.php?f=45&t=19372#p197774

Αντί όμως να εγκαταστήσεις τα πακέτα που λέω και να γράψεις fotrune | cowsay θα γράψεις απλώς echo "Καλήμερα".
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 21 Ιούλ 2011, 11:13

@migf1 Στη συνάρτηση print_list του 5ου μέρους του tutorial σου λες πως τη περνάς by reference ενώ έχει μόνο ένα αστερίσκο, πώς γίνεται αυτό;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 21 Ιούλ 2011, 11:18

stamatiou έγραψε:@migf1 Στη συνάρτηση print_list του 5ου μέρους του tutorial σου λες πως τη περνάς by reference ενώ έχει μόνο ένα αστερίσκο, πώς γίνεται αυτό;

Δεν το βρίσκω, θα μπορούσες να κάνεις παράθεση το σχετικό κομμάτι;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 21 Ιούλ 2011, 11:28

Ο κώδικας της συνάρτησης:
Κώδικας: Επιλογή όλων

void list_destroy( List *list )
{
if ( list->head == NULL )
return;

Node *dummy = NULL;
while ( list->head ) {
dummy = list->head->next;
free( list->head );
list->head = dummy;
}

return;
}

και από κάτω λες:
έγραψε:Η πρώτη παρατήρηση είναι πως στην list_print() την λίστα την περνάμε by value, ενώ στην list_destroy() την περνάμε by reference. Δεν χρειάζεται να περαστεί by reference στην list_destroy() (άλλωστε άμα δείτε στα προηγούμενα μέρη, by value την περνάμε στην list_destroy) απλά το έκανα έτσι τώρα για να γίνει εμφανής η διαφορά μεταξύ του συμβολισμού -> και της απλής τελείας, όταν περιγράφουμε τα πεδία μιας μεταβλητής που είναι τύπου struct.
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 21 Ιούλ 2011, 12:14

Α, αυτή είναι η list_destroy() βρε συ... είπες list_print() και μπερδεύτηκα.

Στο 5ο μέρος έχω αλλάξει την δομή της λίστας, όπως αναλύω και στο tutorial. Οπότε η list δεν είναι πια δείκτης σε Node, αλλά είναι μια μεταβλητή τύπου List. Άρα όταν την περνάμε by reference της έχουμε έναν μόνο αστέρι στο σώμα της συνάρτησης.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι