Aber wenn sich da evtl. auch der String "*#" findet
Schon daran dürfte es scheitern ... wenn da nicht irgendwelches Voodoo mit String-Pointern stattfindet (also ein weiterer Pointer auf den partiellen Inhalt am Ende einer anderen Zeichenkette zeigt), gibt es die Kombination *# in 'telefon' nicht. Das hatte ich schon vorher geprüft ...
Und außerdem ist das schon ein gewaltiger Unterschied, ob ein Vergleich mit einer tatsächlich vorhandenen Zeichenkette verwendet wird, nachdem eine Spezialbehandlung "zugeschaltet" wurde oder ob da Dein geplanter Vergleich mit einer leeren Zeichenkette stattfinden soll.
Wenn das bis zu der Entscheidung, ob die Verarbeitung lokal erfolgen soll bzw. ob es sich überhaupt um "Steuercodes" handelt, als FSM (ein "endlicher Automat" mit genau definierten Zuständen, so würde zumindest ich es machen) angelegt ist, dann schaltet der Stern erst einmal in den "Erkennungsmodus", daß da überhaupt ein Steuercode folgt oder folgen könnte.
@koy:
Na gut, in C (und telefon ist ein C-Kompilat) ist das Überschreiben von "*#\0" mit "\0\0\0" auch eine leere Zeichenkette, damit ändert sich die Gesamtlänge der Datei nicht. Und Prüfsummen über den binären Inhalt werden in der Regel nicht verwendet ... das "binäre Patchen" funktioniert ganz gut auf einer FRITZ!Box, notfalls sogar mit bsdiff/bspatch, AVM macht(e) es (ob immer noch, weiß ich gar nicht) selbst so, wenn es um ADSL- vs. VDSL-Firmware für die Chipsets geht.