• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Speicherzugriffsfehler

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:
#include <stdio.h>
 #include <stdlib.h>

int main(int argc, char *argv[])
{
  
  FILE *fp;
  char text[255];
  char string[] = "Hallo";

  if(fp = fopen("Datei.dat", "w+") == NULL) {
  printf("Probleme beim öffnen\n");
  exit(1);
}

  fputs(string, fp);

  fgets(text,5,fp);
  printf("Das ist der Text: %s", text);
  fclose(fp);
  return 0;
}

Das schreiben hab ich Testweise eingebaut. Die Datei wird auch korrekt erstellt. Nur lesen kann ich sie nicht!
 
Es fehlen Klammern in Zeile 11:
Probier mal
Code:
if( ( fp = fopen("Datei.dat", "w+") ) == NULL) {
Sonst wird das Ergebnis der Abfrage fopen(..)== NULL (also zB int 1) zu fp gemacht.

Außerdem würde ich da noch ein rewind() vor das fgets() schieben...

Haegar
 
Noch ein wenig mehr Senf von mir: "Hallo" hat noch "\0" am Ende, es müssen also 6 Zeichen eingelesen werden.

Viele Grüße
 
Oben