Speicherzugriffsfehler aus Datei lesen

Post Reply
Message
Author
<Idefix>
Posts: 8
Joined: 22. Aug 2006 9:31

Speicherzugriffsfehler aus Datei lesen

#1 Post by <Idefix> »

Ich versuche ein C-Programm mit gcc Ver. 3.3.5 unter Suse 9.3 zu erstellen und bin gleich am Anfang auf ein Problem gestoßen das ich nicht in den Griff bekomme. Und zwar will ich auf eine Datei zugreifen, bekomme aber ständig einen Speicherzugriffsfehler. Warum?

Code: Select all


#include <stdio.h>
 #include <stdlib.h>

int main&#40;int argc, char *argv&#91;&#93;&#41;
&#123;
 
  FILE *fp;
  char text&#91;255&#93;;
  char string&#91;&#93; = "Hallo";

  if&#40;fp = fopen&#40;"Datei.dat", "w+"&#41; == NULL&#41; &#123;
  printf&#40;"Probleme beim öffnen\n"&#41;;
  exit&#40;1&#41;;
&#125;

  fputs&#40;string, fp&#41;;

  fgets&#40;text,5,fp&#41;;
  printf&#40;"Das ist der Text&#58; %s", text&#41;;
  fclose&#40;fp&#41;;
  return 0;
&#125;
Das schreiben hab ich Testweise eingebaut. Die Datei wird auch korrekt erstellt. Nur lesen kann ich sie nicht!

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Erst einmal lässt sich dein Code oben gar nicht compilieren. Die korrigierte Version unten schon, und die erzeugt bei mir auch keinen Fehler.

Code: Select all

#include <stdio.h>
#include <stdlib.h>

int main&#40;int argc, char *argv&#91;&#93;&#41;
&#123;

   FILE *fp;
   char text&#91;255&#93;;
   char string&#91;&#93; = "Hallo";

   if&#40;&#40;fp = fopen&#40;"Datei.dat", "w+"&#41;&#41; == NULL&#41;
   printf&#40;"Probleme beim öffnen\n"&#41;;

   fputs&#40;string, fp&#41;;

   fgets&#40;text,5,fp&#41;;
   printf&#40;"Das ist der Text&#58; %s", text&#41;;
   fclose&#40;fp&#41;;
   return 0;
&#125;
Um einen gerade geschriebenen Text wieder einzulesen, musst du übrigens dazwischen mit fseek() den Stream zurückspulen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply