PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kein gültiger code mit alter glibc?



avuton
15-12-2003, 10:00
kann mir einer sagen, warum folgender code bei glibc versionen unter 2.2.5 einen segmentation fault auslöst?


int main(int argc, char *argv[]){
char buff[MAX],*p;
int begintag=0;
/* Help und Version Überprüfung */
if(argc!=1){
if(((argc==2 && !strcmp(argv[1], "-h")) || (!strcmp(argv[1], "--help")))){
textview_usage();
}
if(((argc==2 && !strcmp(argv[1], "-v"))|| (!strcmp(argv[1], "--version"))||(!strcmp(argv[1],"-V")))){
textview_version();
}
if(argc==1){
textview_usage();
}

/* Starten des eigentlichen Fensters */
initscr();
start_color();
curs_set(0);
splash_print(COLS);
/* -frame[on|off] */
if(!strcmp(argv[1],"--frame=on")){
drawwalls();
in_str=fopen(argv[2],"r");
}
else if(!strcmp(argv[1],"--frame=off")){
in_str=fopen(argv[2],"r");
}
else{
in_str=fopen(argv[1],"r");
}
/* falls Datei nicht geöffnet werden kann */
if(!in_str){
endwin();
printf("%s no such file (123)...\n", argv[1]);
return -1;
}
/* Datei zeichenweise auslesen */
while(fread(buff,1, 1,in_str)){
p=buff;

/* Anfang eines Tags suchen */
switch(*p){
case'<':
begintag=1;

/* wenn Tag Anfang gefunden, übergebe 1 an die Funktion tag */
tag(begintag);
break;
case'>':
begintag=0;
break;
}
}

getch();
endwin();
}
else{
textview_usage();
}
return 0;
}

gruß avuton

peterschen
15-12-2003, 10:26
Hallo,

also ich würde einmal asutesten, ab welcher Funktion der Fehler auftritt.
Alles auskommentieren, bis das Programm funktioniert.

So kannst du dem Fehler evtl. auf die Schliche kommen.

Grüße
Christoph

peschmae
15-12-2003, 10:57
mal a bisserl debuggen um zu sehen wo das Teil probleme macht

MfG Peschmä