Seite 1 von 1

Microsoft verbannt memcpy()

Verfasst: Fr Mai 15, 2009 8:01 am
von Xin
siehe: http://www.codeproject.com/News.aspx?nwid=9340

Grundsätzlich vielleicht nicht ganz verkehrt, aber mich würde interessieren, was die Entwickler aufwendiger Software sagen, wenn auf einmal so eine unbedeutende Funktion wie memcpy aus den Headern verschwindet und man dutzende Stellen im Quelltext überarbeiten muss!?

Abgesehen davon... was machen Entwickler, die wissen, dass der Zielbuffer gleich groß ist... müssen die dann zwangsläufig eine zweite Überprüfung durch memcpy_s über sich ergehen lassen? In zeitkritischen Anwendungen?
Obwohl... in richtig zeitkritischen Dingen, rufe ich nicht memcpy auf, sondern schriebe das Kopieren selbst in die Funktion rein, um den Funktionsaufruf zu sparen ;->

Re: Microsoft verbannt memcpy()

Verfasst: Fr Mai 15, 2009 1:08 pm
von Dirty Oerti
Oha, dass ist ja nett von den Entwicklern...
Xin hat geschrieben:Grundsätzlich vielleicht nicht ganz verkehrt, aber mich würde interessieren, was die Entwickler aufwendiger Software sagen, wenn auf einmal so eine unbedeutende Funktion wie memcpy aus den Headern verschwindet und man dutzende Stellen im Quelltext überarbeiten muss!?
Also denen würde ich raten:
Xin hat geschrieben:schriebe das Kopieren selbst
und binde es in einen eigenen Header ein.
Den Header einfach überall dort dazu, wo memcpy verwendet wird.

Re: Microsoft verbannt memcpy()

Verfasst: Fr Mai 15, 2009 5:33 pm
von fat-lobyte
Also für mich sieht das nach nem typischen Fall von "gut gemeint" aus. Ist ja schön und gut, dass sie so für die Sicherheit sorgen wollen. Aber alle Programme die das verwenden zu "breaken" ist auch nicht das gelbe vom Ei.
Xin hat geschrieben:Abgesehen davon... was machen Entwickler, die wissen, dass der Zielbuffer gleich groß ist...
Das denke ich mir auch. Sollten beim Einsatz von memcpy nicht die Alarmglocken läuten und extreme Vorsicht gelten?
Xin hat geschrieben:Obwohl... in richtig zeitkritischen Dingen, rufe ich nicht memcpy auf, sondern schriebe das Kopieren selbst in die Funktion rein, um den Funktionsaufruf zu sparen ;->
*lol*
Also ich würde mich trotzdem auf das memcpy verlassen, da ich darauf vertraue/hoffe, dass die Implementierung auf meinem Zielsystem so gewählt ist dass die schnellstmögliche Variante verwendet wird. Die glibc zum Beispiel implementiert memcpy auf verschiedenen Architekturen anders, oft mit assembler. Wie ich gerade gelesen habe können Prozessoren mit SSE2 Daten noch schneller kopieren:
http://software.intel.com/en-us/article ... rformance/