Προς το περιεχόμενο

Εργασία στην C


rafail1994

Προτεινόμενες αναρτήσεις

Οκ εννοούσα τερματισμό με την στενή έννοια. (Οτι θα φύγει από το task manager των windows)

 

Σταμάτα να δικαιολογείσαι. Ο παλιός ξέρει καλύτερα. Κάνε free τα πάντα πριν τερματίσεις όπως λέει και ο Raymond Chen.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 130
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσιευμένες Εικόνες

Σταμάτα να δικαιολογείσαι. Ο παλιός ξέρει καλύτερα. Κάνε free τα πάντα πριν τερματίσεις όπως λέει και ο Raymond Chen.

 

Ο παλιός τυγχάνει να έχει φάει με το κουτάλι την C σε εφαρμογές και πλατφόρμες που ο νέος δεν τα έχει δει ούτε στον ύπνο του. Ο συγκεκριμένος νέος όταν διαβάζει "εξωτικές πλατφόρμες" ή/και "ενσωματωμένα συστήματα" φαίνεται πως το μεταφράζει ως ">= Windows XP SPx" μιας και προφανώς δεν έχει δουλέψει ποτέ στην ζωή του με κάτι άλλο και νομίζει πως ο κόσμος περιστρέφεται γύρω από τον εαυτό του και μόνο γύρω από ότι έχει αυτός υπόψιν του.

 

Ο συγκεκριμένος νέος μπορεί επίσης να επιχειρήσει να μεταφέρει την άγνοια και την ειρωνεία του στο αγαπημένο του SO: http://stackoverflow.com/questions/2213627/when-you-exit-a-c-application-is-the-malloc-ed-memory-automatically-freed , μπας και γλιτώσουμε τουλάχιστον την στενόμυαλη παραπληροφόρηση σε εγχώριο επίπεδο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Βασικά η καλύτερη απάντηση σε κείνη την ερώτηση είναι αυτή. Και το γενικότερο συμπέρασμα ότι υπάρχουν ικανοποιητικά επιχειρήματα και υπέρ, και κατά.

 

 

 

Δεν έχει πλάκα που σε μια απάντηση μπορεί να πεις "εγώ κάνω αυτό και ποτέ δεν είχα πρόβλημα" ενώ σε μια άλλη μπορεί να πεις "σιγά μη πάρω σα δεδομένο πως αυτοί που διαβάζουν insomnia προγραμματίζουν πάνω σε κάποιο ευρείας χρήσης λειτουργικό που βγήκε από το 2000 και μετά"; Εγώ τουλάχιστον το βρίσκω αστείο. Ιδιαίτερα αν σκεφτείς ότι οποιοσδήποτε όντως προγραμματίζει σε περίεργα περιβάλλοντα προφανώς ξέρει ήδη τι πρέπει και τι δεν πρέπει να κάνει σ' αυτά.

 

Δεν έχει πλάκα που σε μια απάντηση λες "δε γουστάρω StackOverflow" και σε μια άλλη λες "χέσε τον Chen τι ξέρει αυτός, εγώ θα σου πω την αλήθεια κι αυτή είναι στο StackOverflow"? Κι αυτό το βρίσκω αστείο. Βάλτον στη θέση του έμπειρε. Και βάλε στη θέση τους επίσης τον #5 ranked overall και τoν #3 ranked στο tag "C" που συμφωνούν πως δεν είναι τόσο σημαντικό να κάνεις free.

 

Και βέβαια εύγε για τις πρακτικές συμβουλές... free τη μνήμη δαγκωτό για να είσαι προφυλαγμένος αν τυχόν ο κώδικάς σου υπνοβατώντας μπει σε κανένα embedded σύστημα.

 

 

 

Αυτά βέβαια για όποιον μπορεί να σκεφτεί, απο κει και πέρα ο καθένας έχει το δικαίωμα της γνώμης του. Εγώ είμαι ικανοποιημένος από την παρουσίαση όλων των απόψεων.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Ο μόνος που έχει πλάκα είσαι εσύ defacer (που μεταξύ όλων των άλλων θες να μας υποδείξεις κιόλας ποια είναι και η καλύτερη απάντηση :lol:).

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ασχετο, τον  Link.png Site: http://stackoverflow.com/users/17034/hans-passant">#5 ranked AKA nobugz τον εμπιστεύομαι με κλειστα μάτια. Αν διαβάσετε τις απαντησεις του (συνήθως σε δυσκολα θεματα windows) θα δείτε ότι ξέρει πααααρα πολλα.
 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ασχετο, τον  [link='#5 ranked

AKA nobugz τον εμπιστεύομαι με κλειστα μάτια. Αν διαβάσετε τις απαντησεις του (συνήθως σε δυσκολα θεματα windows) θα δείτε ότι ξέρει πααααρα πολλα.

 

Κι ο Niall Murphy δεν ξέρει λίγα, κι ας μην είναι το link από το SO :P

 

Η ουσία είναι πως το αν θα γίνει reclaim ή όχι η μνήμη εξαρτάται από το λειτουργικό σύστημα, για αυτό και αντέδρασα (κόσμια, ελπίζω να συμφωνούμε) όταν έγραψες χωρίς περαιτέρω διευκρίνηση πως δεν έχει κανένα νόημα να την κάνουμε explicitly free.

 

Π.χ VxWorks και Nucleus RTOS ήταν 2 δημοφιλή λειτουργικά για ενσωματωμένα που σε κάποια configurations δεν έκαναν reclaim από ότι θυμάμαι, πλέον ίσως κάνουν όμως δεν το γνωρίζω.

 

Λάβε επίσης υπόψη πως δεν έχουμε καν ακουμπήσει το θέμα: shared memory ;)

 

ΥΓ. Το link του Murphy που δίνω παραπάνω έχει ενδιαφέρον για όποιον θέλει να πάρει μια 1η γεύση για low-level memory management challenges. Ενδιαφέρον επίσης έχει και η xdc.tuntime library στο RTSC project.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λάβε επίσης υπόψη πως δεν έχουμε καν ακουμπήσει το θέμα: shared memory ;)

 

Αν θέλεις λοιπόν ακούμπησέ το για να δούμε με ποιό τρόπο είναι σχετικό με την κουβέντα.

 

για αυτό και αντέδρασα (κόσμια, ελπίζω να συμφωνούμε) όταν έγραψες χωρίς περαιτέρω διευκρίνηση πως δεν έχει κανένα νόημα να την κάνουμε explicitly free.

 

Και η αντίδρασή σου θα ήταν εξαιρετική αν δεν έπεφτε ακριβώς στον ίδιο λάκκο: χωρίς περαιτέρω διευκρίνιση.

 

(Άσε που αυτός έκανε μια μικρή διευκρίνιση: "αμέσως πριν τον τερματισμό" με bold. Αν κάποιος το διαβάσει και δεν καταλάβει ότι το bolded έχει σημασία, αυτό είναι πρόβλημα reading comprehension).

 

Το έχω ξαναπεί με άλλα λόγια: εφόσον υπάρχει ενδεχόμενο να παίξεις το χαρτί της εμπειρίας, δε φτάνει να λες "είναι καλή πρακτική". Είσαι "ηθικά υποχρεωμένος" να λες και γιατί και να το υποστηρίξεις αν χρειαστεί. Διαφορετικά ο καθένας μπορεί να λέει ότι του καπνίσει.

 

Το link στον Chen το έδωσα όχι γιατί ακούμε Chen και κάνουμε τουμπεκί, αλλά ακριβώς επειδή εξηγεί συγκεκριμένους πρακτικούς λόγους για τους οποίους αυτό που είπε ο albNik έχει νόημα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κι ο Niall Murphy δεν ξέρει λίγα, κι ας μην είναι το link από το SO :P

 

...

 

ΥΓ. Το link του Murphy που δίνω παραπάνω έχει ενδιαφέρον για όποιον θέλει να πάρει μια 1η γεύση για low-level memory management challenges. Ενδιαφέρον επίσης έχει και η xdc.tuntime library στο RTSC project.

 

Ουπς, ξέχασα να δώσω το link για το low-level mem managing, του Murphy: http://www.barrgroup.com/Embedded-Systems/How-To/Malloc-Free-Dynamic-Memory-Allocation

 

@defacer:

 

Αν χρειάζεσαι φροντιστήριο κάνε μου πρόταση, κι αν τα χρήματα που θα μου προσφέρεις τα θεωρήσω αρκετά το συζητάμε privately. Εγώ στα φόρουμ ούτε διδάσκω, ούτε έχω ηθική υποχρέωση να αναλύσω τίποτα περισσότερο από ότι επιτρέπει η εκάστοτε διάθεση και ο χρόνος μου.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό που χρειάζομαι είναι να μη διαβάζω τελείως αστήρικτες τοποθετήσεις από κάποιον που πουλάει εμπειρία αλλά όταν χρειαστεί να στηρίξει τη θέση του απο δω παν κι άλλοι.

 

Και στην τελική, με το χρόνο σου κάνε ο,τι θες. Αλλά δεν ξέρω πώς μπορεί να έχει κανείς μούτρα να υποδεικνύει λάθη σε άλλους τα οποία ίδια ακριβώς κάνει κι ο ίδιος και όταν τον κάνεις call out (γιατί μέχρι εδώ άνθρωποι είμαστε) να πουλάει τρέλα.

 

By the way, το link που δίνεις δεν έχει απολύτως καμία σχέση με το θέμα της κουβέντας. Και δυστυχώς αυτό δεν είναι αξιοπερίεργο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ούτε εγώ ξέρω πως μπορεί κανείς να έχει μούτρα μέσα σε 13 λεπτά να υπονοεί πως διάβασε και κατάλαβε ένα μακροσκελές τεχνικό άρθρο κι έγραψε κιόλας κι ένα ποστ χαρακτηρίζοντας το άσχετο, πουλώντας και μούρη από πάνω, αλλά η διαφορά μας είναι πως εμένα δεν μου καίγεται καρφί ούτε για τα μούτρα ούτε για αυτόν που τα έχει, ούτε τι χρειάζεται και δεν χρειάζεται αυτός που έχει τα μούτρα.

 

Καλό mumbling σου εύχομαι.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ο παλιός τυγχάνει να έχει φάει με το κουτάλι την C σε εφαρμογές και πλατφόρμες που ο νέος δεν τα έχει δει ούτε στον ύπνο του.

Ωραίος. Με το καλό και σε ανώτερα (δεν το λέω ειρωνικά).

 

Γιατί όμως ρε συ (ρωτάω με όλη την καλή διάθεση και χωρίς να προσπαθώ να σου την πω) αρέσκεσαι, συχνά πυκνά, να αναφέρεις το πόσα χρόνια προγραμματίζεις σε C ? Ένα σωστό επιχείρημα στέκει από μόνο του χωρίς να χρειάζεται να καταφύγεις στα χρόνια που προγραμματίζεις. Ένα λάθος επιχείρημα από την άλλη δεν στέκει ακόμη και αν αναφέρεις τα χρόνια σου (ίσα ίσα προσβάλλει περισσότερο αυτόν που το κάνει).

 

Εγώ προσωπικά, από συνήθεια, πάντα κάνω free σε ό,τι έχω δεσμεύσει οπότε συμφωνώ μαζί σου αλλά καταλαβαίνω και το επιχείρημα των albNik, defacer. Σε πολλές περιπτώσεις δεν υπάρχει κανένα νόημα να κάνεις free (και μάλιστα κάνει το πρόγραμμα απείρως πιο αργό όπως εξηγεί και το link που έδωσε ο defacer).

 

τoν #3 ranked στο tag "C"δικαίωμα της γνώμης του. Εγώ είμαι ικανοποιημένος από την παρουσίαση όλων των απόψεων.

  

Ασχετο, τον  http://stackoverflow.com/users/17034/hans-passant #5 ranked

AKA nobugz τον εμπιστεύομαι με κλειστα μάτια. Αν διαβάσετε τις απαντησεις του (συνήθως σε δυσκολα θεματα windows) θα δείτε ότι ξέρει πααααρα πολλα.

Στο SO υπάρχουν όντως πολλά αξιόλογα άτομα που είναι τέρατα γνώσεων. Τουλάχιστον για C που παρακολουθώ πιο πολύ, από τους 20 που φαίνονται στην top λίστα οι 12 (τουλάχιστον) είναι καταπληκτικοί. Και ο R που ανέφερε ο defacer μπορεί να έχει μεγάλη διαφορά στη φήμη από τον 2ο και 1ο αλλά είναι πολύ καλός και σε κάποια τεχνικά θέματα που δεν τα ξέρουν όλοι δίνει πολύ καλές απαντήσεις.

 

Το έχω ξαναπεί με άλλα λόγια: εφόσον υπάρχει ενδεχόμενο να παίξεις το χαρτί της εμπειρίας, δε φτάνει να λες "είναι καλή πρακτική". Είσαι "ηθικά υποχρεωμένος" να λες και γιατί και να το υποστηρίξεις αν χρειαστεί. Διαφορετικά ο καθένας μπορεί να λέει ότι του καπνίσει.

Αν χρειάζεσαι φροντιστήριο κάνε μου πρόταση, κι αν τα χρήματα που θα μου προσφέρεις τα θεωρήσω αρκετά το συζητάμε privately. Εγώ στα φόρουμ ούτε διδάσκω, ούτε έχω ηθική υποχρέωση να αναλύσω τίποτα περισσότερο από ότι επιτρέπει η εκάστοτε διάθεση και ο χρόνος μου.

Αυτό είναι θέμα που σηκώνει συζήτηση αλλά συμφωνώ με τον defacer. Και εγώ έχω γράψει μηνύματα που έλεγαν "καλό είναι να κάνεις το τάδε πράγμα" ή γενικά δεν ήταν όσο επεξηγηματικά έπρεπε λόγο έλλειψης χρόνου αλλά γενικά συμφωνώ ότι πρέπει να υποστηρίζουμε αυτό που λέμε. Δεν είναι ότι κάποιος είναι δάσκαλος και διδάσκει αλλά δεν μπορεί κάποιος να πετάει κάτι χωρίς να το εξηγεί. Θα φάω βρίσιμο τώρα αλλά νομίζω πως σε ένα άλλο νήμα που ξαναθίχτηκε το ίδιο πράγμα σου είχα πει την ίδια φράση ("ηθική υποχρέωση") με τον defacer :)
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ύτε εγώ ξέρω πως μπορεί κανείς να έχει μούτρα μέσα σε 13 λεπτά να υπονοεί πως διάβασε και κατάλαβε ένα μακροσκελές τεχνικό άρθρο κι έγραψε κιόλας κι ένα ποστ χαρακτηρίζοντας το άσχετο, πουλώντας και μούρη από πάνω, αλλά η διαφορά μας είναι πως εμένα δεν μου καίγεται καρφί ούτε για τα μούτρα ούτε για αυτόν που τα έχει, ούτε τι χρειάζεται και δεν χρειάζεται αυτός που έχει τα μούτρα.

 

Όταν ξέρεις ήδη αυτά που πραγματεύεται το άρθρο δε χρειάζεται να το μελετήσεις. Απλά να καταλάβεις αν αναφέρεται σε μια συγκεκριμένη λεπτομέρεια ή όχι.

 

Αλλά όλα αυτά είναι άσχετα. Το θέμα είναι πως εγώ δεν έχω καμία υποχρέωση να αποδείξω ένα αρνητικό (ότι το άρθρο είναι άσχετο). Εσύ που δίνεις το link έχεις την υποχρέωση να αποδείξεις ότι είναι σχετικό. Αν διαφωνείς, ορίστε ένα άρθρο που αποδεικνύει ότι δεν ξέρεις τι λες.

 

Οπότε όπως λεν και οι φίλοι μας οι αμερικανοί, put up or shut up.

 

Για το ακαδημαϊκό του θέματος (@imitheos) να συμπληρώσω ότι σε καμία περίπτωση δεν απαιτούν οι "forum nazis" τέλειες υπερσωστα διατυπωμένες και πλήρεις απαντήσεις από την πρώτη στιγμή. Περιθώριο για βελτιώσεις και διευκρινίσεις υπάρχει πάντα. Θέληση είναι αυτό που δεν υπάρχει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@imitheos:

 

Την ηθική μου υποχρέωση με τον defacer την έχω εξαντλήσει προ πολλού... μήπως θέλεις να σου θυμίσω π.χ. τι έγινε όταν από ηθική υποχρέωση εξήγησα ότι το μέγεθος του map είναι σε άμεση εξάρτηση με το efficiency της hash function (ομοίως και σε σένα); μήπως για την ηθική μου υποχρέωση να του εξηγήσω γιατί η C δεν υποστηρίζει εγγενώς OOP? μήπως για την ηθική μου υποχρέωση να του εξηγήσω περί ορισμών και casting μεταξύ pointers στην C? να συνεχίσω ή θυμάσαι τα δεκάδες επιχειρήματα που στέκουν από μόνα τους σε οποιονδήποτε ακαδημαϊκό και επαγγελματικό κύκλο που είναι έστω μέτριου επιπέδου και ο defacer όχι μόνο τα αγνοεί αλλά το παίζει κι έξυπνος;

 

Από που και ως που έχω ηθική υποχρέωση να ασχολούμαι διαρκώς κι επί μονίμου βάσεως με ένα άτομο που αγνοεί fundamentals έννοιες και είναι και ανεπίδεκτο να τις μάθει επειδή αρνείται πως τις αγνοεί;  Εφόσον του αρέσει να παίζει την κολοκυθιά, ας πάει να πληρώσει κάποιον να του κρατάει τα κολοκύθια ή ας βρει κάποιον άλλον να του κουνάει την κολοκυθιά.

 

Η ηθική υποχρέωση του defacer για σένα είναι από ότι καταλαβαίνω να επεμβαίνει σε μια απάντηση μου στον albNik ειρωνευόμενος και δίνοντας ένα link που μιλάει καθαρά για συγκεκριμένο λειτουργικό σύστημα και να το αναγάγει από μόνος του ως θέσφατο για οποιαδήποτε περίπτωση. Οκ that's life.

 

Σε δικά σου ποστ που με έχεις διορθώσει πόσες φορές έχω συμφωνήσει, μήπως θυμάσαι; Εν πάσει περίπτώσει, τα έχουμε ξαναπεί 10άδες φορές. Γνωρίζω πως ο defacer σε ψήνει ενώ εγώ σου την σπάω, κανένα πρόβλημα από μένα, είπαμε that's life.

 

Αλλά we all have to live with it, ο καθένας όπως νομίζει εκείνος καλύτερα για τον εαυτό του και όχι όπως θέλει να του επιβάλλει ο άλλος (είτε αυτός ο άλλος είναι ο ίδιος αυτοπροσώπος, είτε φορουμ-ικοί κολλητοί του).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

κάποιο [σ.σ. δηλαδή οποιοδήποτε] ευρείας χρήσης λειτουργικό που βγήκε από το 2000 και μετά

 

Π.χ VxWorks και Nucleus RTOS

 

μιλάει καθαρά για συγκεκριμένο λειτουργικό σύστημα και να το αναγάγει από μόνος του ως θέσφατο για οποιαδήποτε περίπτωση.

 

Μιλάμε έχουμε πιάσει level cap στο strawman argument. Θεέ της ειρωνίας, μέγα το έργο σου. Δεν περιγράφω άλλο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  Δεν περιγράφω άλλο.

 

Και πολύ καλά κάνεις και δεν περιγράφεις (αλλά τήρησέ το), διότι όπως για τόσα άλλα αυτονόητα έτσι και τώρα αγνοείς πλήρως την διαφορά μεταξύ "καλής πρακτικής" και "εξαναγκασμού". Καθώς επίσης και τη διαφορά μεταξύ θεωρίας και πράξης.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...