pl: Zeichenketten, Arrays mit Zeichen in c dynamisch füllen

Beitrag lesen

problematische Seite

hi @Rolf B

danke für Deine Hinweise. Hier mal ein typischer Fehler:

 // betrifft: Templatedatei
 filecontent = (char*)malloc(filesize);

Das Übliche: Terminierung vergessen. Das Tückische: Der Fehler wird nicht gleich bemerkt! Hat mich 3 Tage gekostet, der Fehler trat sporadisch auf, das P ist einfach abgeschmiert, rein zufällig bei bestimmten GET oder POST Parametern.

Als ich das Formular um AJAX erweitert habe, wunderte ich mich, daß bei denselben Parametern kein Absturz erfolgte. Das hat mich dann dahin geführt wo es passiert, Lösung: mit malloc(filesize +1) den Platz für die Nullterminierung anfordern und den String terminieren.

Läuft wie geschmiert jetzt 😉

Was ich am FW in c anders mache als im Perl-FW: Ausgaben gehen gleich raus auf stdout. In Perl hingehen hab ich das alles erst gepuffert.. nun Beides hat seine Vor und Nachteile. Die Arbeitsweise der Templatemachine ctemplate läßt jedoch gar keine andere Arbeitsweise zu, letztendlich führt es grundsätzlich zu einem Transfer-Encoding: chunked.

Der Vorteil in c: Ich kann mit fwrite() arbeiten und Binärdaten ausgeben. Interessant für AJAX, einen JSON direkt auf stdout auszugeben geht natürlisch auch.

Schluß für Heute 😉