freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

segmentation fault σε fread σε c


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [10 Μηνύματα]      Bookmarks Tags: c Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
helena


Μέλος από: 28 Δεκ 2009
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 02:41    Θέμα: segmentation fault σε fread σε c Απάντηση με παράθεση  Mark this post and the followings unread

Καλησπέρα και Χρόνια Πολλά,

Είμαι ένας νεός χρήστης του forum και αρχάριος προγραμματιστής.

Θα μου ήταν ιδιαίτερα χρήσιμη λίγη βοήθεια καθώς δεν μπορώ να λύσω ένα
προβλημα πoυ έχω παρά τα google search και τις μικροαλλαγές στον κώδικα.

Συναντάω segmentation fault όταν τρέχω τον κώδικα μου,έχω σημειώσει σε
ποιο σημείο γίνεται αυτό (fread) και μεχρι ποιο σημείο έτρεχε τελευταία
φορά.

Να σημείωσω ότι όταν έτρεχε δεν ετρεχα fclose γιατί και τότε εβγαζε
segmentation fault αλλά χωρίς αυτή δούλευε(υποθέτω είχε να κάνει με την
fread).

Eπισυνάπτω και το αρχείο που προσπαθώ να διαβάσω και να αποθηκεύσω με τον κώδικα.

Καθε βοήθεια καλοδεχούμενη



segfaultfread.zip
 Description:

Download
 Filename:  segfaultfread.zip
 Filesize:  1.25 KB
 Downloaded:  344 Time(s)

virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 09:35    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

το segmentation fault το προκαλούν 2 εντολές strcpy


1)strcpy(merikidiagrafi[i].id,string);

2)strcpy(diagrafi[i].id,string);

κάνε το έτσι
if (string!=NULL) strcpy(merikidiagrafi[i].id,string);

και
if (string!=NULL) strcpy(diagrafi[i].id,string);
helena


Μέλος από: 28 Δεκ 2009
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 10:04    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 10:27    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

τι compiler χρησιμοποιείς?

εμένα με τις αλλαγές δεν βγάζει λάθος
(σε dev c++)



s.rar
 Description:

Download
 Filename:  s.rar
 Filesize:  5.58 KB
 Downloaded:  241 Time(s)

helena


Μέλος από: 28 Δεκ 2009
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 11:00    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

είμαι σε ubuntu και έχω τον gcc.(συνεχίζει το segmentation fault)
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 11:28    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

όταν το τρέχεις μήπως σου εμφανίζει αυτό το μήνυμα?
παράθεση:

To arxeio pontwn den anoikse


Αν ναι τότε δεν βρίσκει το αρχείο pontoi.txt που οδηγεί σε
segmentation fault

κάνε και αυτήν την αλλαγή
κώδικας:

int main (){
if((stream_pontoi = fopen( "pontoi.txt", "r" ))==NULL){
    printf( " To arxeio pontwn den anoikse \n");
    exit(1);
}
  else
    printf(" To arxeio pontwn exei anoiksei \n");

έτσι ώστε όταν δεν βρίσκει το αρχείο να μην συνεχίζει
helena


Μέλος από: 28 Δεκ 2009
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 11:50    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

To arxeio pontwn exei anoiksei
0x804b060
Segmentation fault

--------------------------
ακριβώς τα παραπάνω βγάζει όταν το τρέχω.Οπότε ξέρω ότι κολλάει στην fread, γιατί και το αρχείο έχει ανοίξει και ο buffer δεν είναι null αλλά δεν φτάνει στην αμέσως επόμενη γραμμή που έχει printf.


Δοκίμασα και άλλα αρχεία και παλι το ίδιο γίνεται.Να σημειώσω ότι δούλευε η fread και μετά για κάποιο λόγο σταμάτησε.
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 28 Δεκ 2009 12:41    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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

[edit]Και πρόσθεσε και ένα τελευταίο strtok πριν κλείσεις το while που σου λείπει.[/edit]



test.tar.gz
 Description:

Download
 Filename:  test.tar.gz
 Filesize:  2.95 KB
 Downloaded:  239 Time(s)


Last edited by dva_dev on 28 Δεκ 2009 16:55, edited 1 time in total
virxen75


Μέλος από: 18 Φεβ 2009
Μηνύματα: 256+
Περιοχή: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 14:04    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

το segmentation fault που αναφέρεις

ΔΕΝ ΕΙΝΑΙ ΣΤΗΝ fread !!!

για να το διαπιστώσεις και εσύ άλλαξε αυτό
printf("eleni");
int b;
b=feof(stream_pontoi);

σε αυτό

printf("eleni\n");
int b;
b=feof(stream_pontoi);
helena


Μέλος από: 28 Δεκ 2009
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 28 Δεκ 2009 21:22    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Σας ευχαριστώ πάρα πολύ για την άμεση βοήθεια και λύση στο πρόβλημα μου!!!
Όντως δεν έφταιγε η fread.
το test.tar.gz όντως δουλεύει!!!!
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [10 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
ενας κωδικας σε C που βγαζει μη αναμενομενο αποτεσμα 1 teresa92 13 Αυγ 2016 21:26
teresa92 Εμφάνιση τελευταίου μηνύματος
Bitwise operators in C 3 Kappa4 15 Δεκ 2014 20:38
mariosal Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 06 Δεκ 2016 02:48 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos