Forum: Compiler & IDEs Mit sscanf aus Ringspeicher lesen.


von luke (Gast)


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

von sebastians (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.