[Allegro] Etwas für C-Programmierer: strcpy() vs. memmove()

Fischer, Thomas fischer at sub.uni-goettingen.de
Mo Dez 2 14:28:18 CET 2013


Hallo Herr Berger,

> > 1. Am Anfang dieser Debatte stand m.E. das Problem, dass unsere
> > kombinierte HANS-Suche nicht wie gewünscht funktionierte,
> > weil - so analysierte Herr Berger - acon (ein?) Zeichen bei der
> > Verarbeitung der Suche verschluckte.
> > 2. Dies führte er auf das strcpy-Verhalten zurück, die von Ihnen mit Visual
> > Studio produzierte acon.exe (v.33.4) zeigte dieses Verhalten, nicht aber die
> > erneuerte jetzt aktuelle Version von acon.exe.

> Evtl. erinnern Sie sich falsch, acon hatte auf allen Plattformen Probleme
> mit Suchbegriffen, die ein "#" enthielten. Nach meiner Erinnerung aber
> nur unter Linux gab es das Problem, dass Suchbegriffe verstuemmelt
> wurden.

Die fehlerhaften Ergebnisse hatte mit dem "#" am Ende von Suchbegriffen
zu tun, bemerkt haben wird das bei acon.exe auf unserem Windows-Server.
Soweit ich Herrn Berger verstanden habe, ging (unter bestimmten
Umständen?) das "#" am Ende eines von mehreren Suchbegriffen verloren.

> > Damit ergibt sich die Frage: war die Analyse von Herrn Berger falsch, ging
> > das fehlende Zeichen also auf andere Weise als durch strcpy verloren?
> > Oder hat Ihr Compiler in dieser Situation doch ein unsicheres strcpy
> > eingebaut, das bei Überschneidung von Quelle und Ziel
> > fehlerhafte Ergebnisse lieferte?

> Ich kann dazu nur beisteuern, dass die Umwandlung eines bestimmten
> strcpy() in memmove() nach Neukompilierung das Problem behob...

Das hieße dann doch, dass sich dadurch auch das in Braunschweig mit
Visual Studio kompilierte acon.exe verändert hat.

Mit freundlichen Grüßen
Thomas Fischer






Mehr Informationen über die Mailingliste Allegro