Einlesen eines langen Files



  • Hallo,
    ich habe ein Problem beim Eilesen einer Datei in C unter Unix. Wenn die Datei mehr als 70 Zeilen enthält wird das Einleseprogram korrekt kompiliert aber bei der Ausführung bekomme ich die Meldung "Segmentation Fault".
    Kann jemand mir helfen ? Die Datei hat über 5000 Zeilen. Unterhalb von 70 Zeilen wird sie Korrekt eingelesen.
    Um das Problem zu um zu gehen wollte ich die Datei in kleinen Stücken von 70 Zeilen zerlegen und nach einander einlesen und verarbeiten. Aber dies ist mühsam mit der Variablendeklarationen,usw. Kann man überhaupt eine Array von Typ FILE in C definieren ?

    Ich bedanke mich für euere Hilfe und wünsche eine Schönen Tag, 🙂

    SEKO76



  • Helfen kann man dir, wenn du ein möglichst kompaktes Beispiel liefern kannst, bei welchem das Problem auch auftritt. Du greifst offensichtlich auf Speicher zu, der dir nicht "gehört". Schau dir die Bereiche des Codes genauer an wo Speicher für dei Datei reserviert wird. Ein Besuch beim Debugger kann auch nicht schaden.

    Ja, man kann ein Array von FILE* anlegen, ich bezweifle jedoch, dass das dein eigentliches Problem lösen wird 😉



  • ähm aber an den 70 Zeilen die du einliesst, sollte es nicht liegen, den normaler weise liesst man bis zum ende eines file (EOF) und mit diversen fsanf... funktionen verarbeitest du bestimmte zeichen oder ganze zeilen.

    und Segmention Core passiert meistens bei schreiben in unbekannten speicher oder bei endlosschleife ohne Threads

    Frage: Wie liesst du von der Datei?
    Hast du irgentwelche String funktionen benutzt?
    (Dumme Frage)Die Datei wird auch nur einmal geöffnet?


Anmelden zum Antworten