Mit sscanf aus Ringspeicher lesen.

Gast #1895053
Lesenswert?
• ▲
▼
Hallo.

Habe einen Ringspeicher und darin befinden sich hintereinander 
Zeichenketten.
Also alle mit einem NULL terminiert.
Nun kann es passieren, dass am Ende des Speichers, keine ganze 
Zeichenkette mehr platz findet und so wird sie aufgeteilt.
Ihr Anfang steht am Ende des Speichers und der Rest von Ihr setzt sich 
am Anfang des Speichers fort.
Wenn ich nun mit sscanf eine Zeichenkette nach der anderen rauslese, ist 
alles ok, bis zu dem Punkt an dem die "aufgeteilte" Zeichenkette dran 
kommt.
sscanf liest wohl alles bis NULL. Da aber am Ende meines Speichers ein 
NULL sitzt, oder eben ein nicht initialisierter Speicherbereich. 
Meistens jedoch ein NULL, denkt sscanf, da wäre meine Zeichenkette zu 
Ende.

Falls jemand verstanden hat was ich meine würde ich gerne lesen ob es 
eine Lösung oder einen anderen Ansatz gibt für dieses Problem.

Danke u. Gruß
luke
Gast #1895118
Lesenswert?
• ▲
▼
Lösung 1: Für sscanf in einen extra Puffer kopieren
Lösung 2: spezielles sscanf selber schreiben
Lösung 3: fscanf nehmen, einen Datei-Stream simulieren (geht glaub nur 
Betriebsystemabhängig)
Lösung 4: Die Hardware (MMU) so programmieren, dass der Anfang des 
Ringpuffers auch hinter dem Ringpuffer wieder eingeblendet wird.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.