Bernhard Guillon schrieb:
On 31.08.2010 12:59, lano wrote:

Zum Schluss, punkte 3 und 4, musste ich noch recht kämpfen, denn einen string zusammensetzen ist in c anscheint wieder was ganz anderes als in perl.
mit url = server + datei; funktioniert es jedenfalls nicht.
ich bewerkstellige das nun so:

char url[300];
strcpy(url, quotenpage);
strcat(url, "?user=");
strcat(url, user);
strcat(url, "&channel=");
strcat(url, channel);


Ja weil C keine Strings kennt. Wenn du + bei Pointern verwendest rechnest du Adressen zusammen. Warscheinlich kommt dabei keine brauchbare heraus :)

Du solltest den Speicher hier umbedingt ausrechnen und mit malloc reservieren oder aber überprüfen ob der Puffer groß genug ist um beide "Strings" aufzunehmen. Wenn die beiden Strings zusammen größer als 300 werden hast du sonst einen Buffer Overflow. strnFOO ist dafür besser geeignet, da z.B. strcpy einfach so lange in den Speicher schreibt bis ein Terminierungszeichen \0 kommt strncpy aber nur maximal so lange wie du angibst.
Ich hab einfach mal 300 angegeben damits nicht zum overflow kommt, muss
ich noch anpassen,
300 wirds nie, ohne gezählt zu haben schätz ich eher so auf 50

Libcurl ist zwar schon ein bisschen größer als alles selber zu schreiben aber dafür sollte es machen was du willst. Du kannst es statisch linken dann hast du es beim cross compiling einfacher. Was für eine Toolchain verwendest du für die Dreambox? Das mit dem wget ist sonst auch nicht so schlimm.

Toolchain ? keine ahnung, ich hab auch ne Dbox keine dreambox.
ich hab mir nen script gebastelt was mir alles erstellt was ich brauche.
Da werden die sourcen gepatcht und meine tools und plugins mit
eingebaut, sobald die buildumgebeung steht kann ich dann einfach im cdk
verzeichniss mit "make <mein tool/plugin name> kompilieren, das find ich
schon recht einfach.

-Sven-

PS: bisschen verspätet jetzt die Antwort, erster versuch war mit ner anderen email addy ;)
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an