Microsoft verbannt memcpy()

Windowsspezifische Probleme, WinAPI, conio.h
Antworten
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Microsoft verbannt memcpy()

Beitrag von Xin » Fr Mai 15, 2009 8:01 am

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 ;->
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Microsoft verbannt memcpy()

Beitrag von Dirty Oerti » Fr Mai 15, 2009 1:08 pm

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.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Microsoft verbannt memcpy()

Beitrag von fat-lobyte » Fr Mai 15, 2009 5:33 pm

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/
Haters gonna hate, potatoes gonna potate.

Antworten