Hab was Lustiges in meinen bookmarks gefunden
-
http://www.c-plusplus.net/forum/300018
Viel Spaß beim Lesen, hatte eigentlich nach was ganz Anderem in meinen bookmarks gesucht.
Grüsse an cooky und tyroxx und sowieso auch an rüdiger.
-
Ich würde mich heute nicht mehr so ausdrücken, aber inhaltlich kann ich meinem bösen Klon aus der Vergangenheit voll und ganz zustimmen.
-
TyRoXx schrieb:
Ich würde mich heute nicht mehr so ausdrücken, aber inhaltlich kann ich meinem bösen Klon aus der Vergangenheit voll und ganz zustimmen.
LOl, das ist nicht unterirdisches C sondern immernoch ziemlich cool imho.
-
@TyRoXx: stimme dir zu ;), muss aber klugscheißen: POSIX definiert, dass
recv
einenssize_t
zurückgibt. Nicht einenint
. Obwohl intern dann wahrscheinlich dochint
verwendet wird, aber das weiß man nicht genau.
Einenbool
(gibt es in C eh nicht) würde ich nicht zurückgeben, aber auch keinen Assert machen, weil das dem Programmier die Möglichkeit nimmt, dynamisch darauf zu reagieren. Eigentlich machen ich immer einen Zwischentyp für alle Systeme, der die Fehlercodes zurückgeben kann (DWORD
unter Windows,int
unter POSIX).Wutz schrieb:
ich verwende realloc richtig.
Und deine "Strategie" der Vermeidung von vielen realloc ist subjektiv, scheitert ein realloc mit diesen minimalen Raten irgendwann mal, hast du mit deinem Programm eh ganz andere Probleme.
Deswegen kann man auch statt *b=0 *b=malloc(100000000) verwenden, was aber mit der Frage nichts zu tun hat.Autsch. m(
Ich habe für meine HTTP-Implementierung damals ein Limit eingefügt, ab dem auf die Festplatte geschrieben werden kann, mit einem Zeiger, der auf den Namen der Datei zeigt. Mitselect
prüfe ich, ob beim Socket neue Daten innerhalb eines Zeitlimits vorliegen, und wenn nicht, wird halt abgebrochen, ansonsten vom Socket gelesen. Da macht man dann aber nicht jedes Malrealloc
- ich habe damals einen naiven Heap-Strukt erstellt, der sich den Speicher, die Anzahl der Bytes und das Wachstum speichert, mit einer Funktion, die den Speicher automatisch erweitern lässt (wennrealloc
funzt, super, wenn nicht, muss halt aufwendig mitmemcpy
, welches allerdings langsam ist wie ein dreibeiniges Nashorn,malloc
undfree
hantiert werden). So spart man sich auf Systemen wie Macs, die meines Wissens jedes Mal einen Kernel-Call machen, wenn Speicher angefordert wird, Laufzeit.Ich finde es lustig, dass nach 20 Jahren WWW immer noch Streit darüber gibt, wie Server auf C-Ebene programmiert werden sollen.