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 ;->
Microsoft verbannt memcpy()
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Microsoft verbannt memcpy()
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.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Microsoft verbannt memcpy()
Oha, dass ist ja nett von den Entwicklern...
Den Header einfach überall dort dazu, wo memcpy verwendet wird.
Also denen würde ich raten: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!?
und binde es in einen eigenen Header ein.Xin hat geschrieben:schriebe das Kopieren selbst
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.
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.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Microsoft verbannt memcpy()
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.
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/
Das denke ich mir auch. Sollten beim Einsatz von memcpy nicht die Alarmglocken läuten und extreme Vorsicht gelten?Xin hat geschrieben:Abgesehen davon... was machen Entwickler, die wissen, dass der Zielbuffer gleich groß ist...
*lol*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 ;->
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.