Νέα

Apache ή Apache Tomcat

  • Μέλος που άνοιξε το νήμα nakayama
  • Ημερομηνία ανοίγματος
  • Απαντήσεις 28
  • Εμφανίσεις 2K
  • Tagged users Καμία
  • Βλέπουν το thread αυτή τη στιγμή 1 άτομα (0 μέλη και 1 επισκέπτες)

Boldemort

Σεβαστός
Εγγρ.
4 Σεπ 2009
Μηνύματα
47.529
Κριτικές
12
Like
44
Πόντοι
1.220
θα βαλω και μερικα σχολια και πιο αντιπροσωπευτικα ονοματα μεταβλητων
για να τον κανω πιο ευαναγνωστο. Τσολια αν ξερεις την λυση μην απαντησεις χεχε  :grin:

Κώδικας:
char array[6]="phpVsC"  //array statement 
char *pointer_array;    // pointer to array statement

pointer_array=array;    // Put the adress of array into a pointer array

for(; *pointer_array!='0'; pointer_array++)  // the purpose of for command is starting a loop
printf("%c",*pointer_array);          // print the result which is stored into a pointer array

2 ειναι τα λάθη(που χρειαζεται να επισημανει καποιος)... πριν κάποιος πει αποψη για την C πρέπει να βρεί τα παραπανω 2 λάθη αλλιως δεν εχει το δικαιωμα  :2funny: :2funny: :2funny:
 

Tsolias.Psolias

Ενεργό Μέλος
Εγγρ.
8 Ιουλ 2007
Μηνύματα
15.107
Like
28
Πόντοι
166
εγω ακομη δεν μπορω να καταλαβω τι εννοει ο τυπος
με αυτο που ειπε... "Η γλωσσα C δεν ειναι ασφαλης"
εσυ καταλαβες?
μάλλον εννοούσε ότι σαν γλώσσα δεν σου δίνει κάποιες δυκλίδες ασφάλειας όπως για παράδειγμα στα όρια του πίνακα ή στις τιμές που καταχορείς στις μεταβλητές,
αρχικοποίηση όλων των μεταβλητών σε 0/null (ανάλογα με τον τύπο).
καλώς η κακώς ότι γράφεις στη C, αυτό κάνει (ή μερικές φορές δεν το κάνει)

 

Boldemort

Σεβαστός
Εγγρ.
4 Σεπ 2009
Μηνύματα
47.529
Κριτικές
12
Like
44
Πόντοι
1.220
μάλλον εννοούσε ότι σαν γλώσσα δεν σου δίνει κάποιες δυκλίδες ασφάλειας όπως για παράδειγμα στα όρια του πίνακα ή στις τιμές που καταχορείς στις μεταβλητές,
αρχικοποίηση όλων των μεταβλητών σε 0/null (ανάλογα με τον τύπο).
καλώς η κακώς ότι γράφεις στη C, αυτό κάνει (ή μερικές φορές δεν το κάνει)

Ναι δεν διαφωνω. Υπάρχουν προβλήματα σε συναρτήσεις διαχείρισης των strings στην C.  :)
Eχω συγκεκριμενα παραδείγματα , μπορει και ο ιδιος να μας πει σε ποιες συναρτήσεις συγκεκριμένα υπάρχει το πρόβλημα
ωστε να το συζητησουμε. Ή ακομη καλυτερα να μας δώσει μια υλοποιηση σε κώδικα που έχει φτιαξει ο ιδιος
ο οποιος διορθώνει το πρόβλημα που έχει η ταδε συναρτηση.  :grin: Μπορείς να φτιάξεις τέτοιες συναρτήσεις η C σαν γλωσσα δεν σου θετει κανεναν περιορισμο.
Η νέα συνάρτηση διορθώνει τα προβλήματα στον προηγούμενο κώδικα και αυτη ειναι και ολη η ουσία των αναβαθμίσεων
των λεγόμενων updates  που βλέπουν και οι χρήστες καθημερινα στα συστηματα τους. Φυσικα ειναι μια πολυ προχειρη η αναλυση που δινω.

Ενα καλό σημειο στον προγραμματισμο ειναι εκτος απο κωδικογραφος να εισαι και σχεδιαστης του αλγοριθμου. Λαμβάνοντας υποψη την περιεργη συμπεριφορα και κρασαρισμα του σε μη αναμενομενες εισόδους απο τον χρήστη.
 

Boldemort

Σεβαστός
Εγγρ.
4 Σεπ 2009
Μηνύματα
47.529
Κριτικές
12
Like
44
Πόντοι
1.220
εχω ξανακανει συζητηση  για προβληματικες συναρτησεις διαχειρισης των strings σε αυτο εδω το νημα

εν κατακλειδι και συμπερασματικά με ολα οσα έχουν επισημανθει κατα καιρους
ο ασφαλής κώδικας ειναι ακριβως αναλογος με τον βαθμο γνωσης του προγραμματιστη και την προγραμματιστικη νοοτροπια.
Οσο γνωριζει καποιος τοσο πιο ασφαλη κωδικα φτιαχνει. Να γνωριζει 100% τι ακριβως κανει οταν το κανει. Η σωστη προγραμματιστικη νοοτροπια δεν μονο "κανω εναν κωδικα να τρεχει αυτος ειναι ο στοχος μου"  αλλωστε ασφαλης κωδικας 100% δεν θα υπαρξει ποτε. Ανθρωποι ειμαστε λαθη κανουμε
:)
 

Boldemort

Σεβαστός
Εγγρ.
4 Σεπ 2009
Μηνύματα
47.529
Κριτικές
12
Like
44
Πόντοι
1.220
καληνυχτα σας την κανω :grin:

Και οταν καποιος λεει κατι να το τεκμηριωνει με πραγματικα παραδειγματα

(οχι για να του κανουμε ελεγχο τι ξερει και τι δεν ξερει δεν μας απασχολει αυτο)

απλα για να κανουμε πιο ευκολη την συζητηση και την ανταλλαγη αποψεων.

Γεια χαρα
 
OP
OP
nakayama

nakayama

Μέλος
Εγγρ.
6 Νοε 2010
Μηνύματα
406
Like
70
Πόντοι
1
καληνυχτα σας την κανω :grin:

Και οταν καποιος λεει κατι να το τεκμηριωνει με πραγματικα παραδειγματα

(οχι για να του κανουμε ελεγχο τι ξερει και τι δεν ξερει δεν μας απασχολει αυτο)

απλα για να κανουμε πιο ευκολη την συζητηση και την ανταλλαγη αποψεων.

Γεια χαρα


Η C δεν υποστηρίζει εξαιρέσεις,σε αντίθεση με την C++ και την Java
try{
    //kodikas  :knockinb:
  }catch(Exception IO_EXCEPTION)
 {
  //Σε περίπτωση σφάλματος κάνε αυτό  :fuck1:
 }

Σημείωση To IO_EXCEPTION είναι αντικείμενο
 

Boldemort

Σεβαστός
Εγγρ.
4 Σεπ 2009
Μηνύματα
47.529
Κριτικές
12
Like
44
Πόντοι
1.220
Η C δεν υποστηρίζει εξαιρέσεις,σε αντίθεση με την C++ και την Java
try{
    //kodikas   :knockinb:
  }catch(Exception IO_EXCEPTION)
 {
  //Σε περίπτωση σφάλματος κάνε αυτό  :fuck1:
 }

Σημείωση To IO_EXCEPTION είναι αντικείμενο

Η C σαν γλωσσα δεν σε περιορίζει στο να γράφεις ασφαλισμένο κώδικα. Και ακριβως τοτε μαθαινεις
και τι θα πει ασφάλεια δεν μπορεις να λες οτι ξερεις απο ασφαλεια κτλπ και δεν μπορεις να γραψεις ουτε μια συναρτηση η οποια διαχειριζεται τα strings με ηπιο τροπο και δεν παραγει σφαλματα σε μη αναμενομενη εισοδο χρηστη. Η Java μπορει να παράγει αυτα που λες με τίμημα το να μην εμπλεκεται ο χρηστης
σε διαχειριση χαμηλοτερου επιπεδου οπως διαχειριση μνημης κτλπ. Αυτο αφενος μπορει καποιος να το βρει καλο
επειδη ουσιαστικα η ιδια η γλωσσα του διευκολυνει την ζωη και αφετερου καποιος που ειναι πιο ανησυχο πνευμα
να το βρει αρκετα ασχημο επειδη νιωθει οτι η γλωσσα τον περιοριζει στο να μαθει τα πραγματα πιο βαθυτερα και πιο εκ των εσω.

Για την C++ κανεις λαθος. Διοτι η C++ χρησιμοποιει δεικτες. Και οι δείκτες οταν χρησιμοποιουνται απο αρχάριους ή μη προσεκτικους προγραμματιστες μπορει να δημιουργησουν μεγαλη ζημια.. και ο κωδικας να αρχισει να παραγει segmentation faults ή overwrite σε μνήμη οπου έχει εγγραφες για το λειτουργικο συστημα (περίπτωση στην οποία ένας δείκτης έχει ξεχαστεί στο να αρχικοποιηθεί και αρα δειχνει σε μη προσδιορισμενη θέση).
Ας πουμε ->

Κώδικας:
 int *pointer; //pointer to integer 
// μη αρχικοποιημενος - δεν δειχνει σε εγκυρη μνημη 


Προσωπικα εχω γραψει συναρτηση η οποια διορθωνει το προβλημα της ανω υπερχειλισης στο buffer (buffer overflow attacks) , απλα αν θες να συζητησουμε θα πρεπει να εισαι πιο συγκεκριμενος  :grin:

Δεν ευθυνεται η γλωσσα ουτε δεν ειναι ασφαλης η γλωσσα αμα εσυ δεν θες να ασχοληθεις σε βαθος με τα strings και φτιαχνοντας ασφαλεις συναρτησεις που θα μπορουν να φιλτραρουν την εισοδο του χρηστη επειδη ετσι οπως το πεταξες την αλλη φορα "Η C δεν ειναι ασφαλης γλωσσα " ηταν τελειως αοριστο και το λεω καλοπροαιρετα , μπορει να υπάρχουν χιλιαδες συναρτησεις εκει εξω οι οποιες ειναι ετοιμες στο ιντερνετ ωστε να τις παρει καποιος και να τις ενσωματωσει στον κωδικα του το αν αυτες ειναι ασφαλεις ή οχι δεν ειναι ευθυνη της γλωσσας αλλα ευθυνη του προγραμματιστη... ουτε καν η λανθασμενη εισοδος του χρηστη δεν ειναι ευθυνη της γλωσσας ή και του ιδιου του χρηστη.  
 

Boldemort

Σεβαστός
Εγγρ.
4 Σεπ 2009
Μηνύματα
47.529
Κριτικές
12
Like
44
Πόντοι
1.220
Εκτος βεβαια και αν στην C++ χρησιμοποιεις καποιον μεταγλωτιστη ο οποιος προερχεται απο αναθεωρησεις και πραγματοποιει αυτοματα καποιον ελεγχο χωρις να χρειαζεται να εμπλεκεται ο χρηστης ακομη και αν χρησιμοποιει δεικτες αλλα πρεπει να μου πεις συγκεκριμενα για να το συζητησουμε για αυτο σου λεω παραπανω αν μπορεις να εισαι πιο συγκεκριμενος.

Πληροφορικη ειναι εδω οχι πολιτικη  :2funny: :2funny: :2funny: ή τρεχει κατι ή δεν τρέχει -Αριστοτέλεια Λογική / Λογικη Boole- κτλπ  ;)  

Απλα στην C καποιος πάει επειδη του αρεσει να εξετάζει πολυ εκ των εσω τα πραγματα...
Ειναι πολυ low level γλωσσα σε καποια σημεια... δικαιως εχει χαρακτηρισθει και σαν Super Assembly
(φυσικα δεν φέρει τους περιορισμους που φέρει η Assembly) :cheesy:

Οποιος θέλει να μην μπλεκει με "βρωμοδουλειες" και να παιρνει ετοιμα πραγματα και να μην ζαλιζει "τσαμπα" το κεφαλι του  μπορει να ασχοληθει με πιο υψηλου επιπεδoυ γλωσσες και διερμηνευσης... PHP , Python κτλπ.

Τελος nakyama να βάζεις τον κωδικα σου μεσα σε tags ειδικα για αυτο και να βάζεις και σχολια διπλα ωστε να διευκολυνεις οσους θελουν να τον διαβασουν  ;) κερδιζεις ετσι σε readability 
 

Stories

Νέο!

Stories

Top Bottom