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.
jetzt müssen nur noch einige feinheiten rein, da bin ich aber erstmal
am überlegen wie es am cleversten wäre.
die datei vom server holen und die url an den server senden mache ich
mit ein und der selben funktion.
HTTP_downloadFile( quotenserver, 80, url, "/dev/null", 0, 1);
die Funktion macht im Moment allerdings nix anderes als wget mit den
ensprechenden parametern aufzurufen. Interessant wäre es ob es zb. mit
deiner Funktion Ressourcen schonender wäre.
(im gegensatz zum shell script frist das c progämmchen so gut wie nix)
Allerdings wollt ich
a) weder das rad ständig neu erfinden
b) sollte das programm so klein wie möglich sein, mir stehen nur 556kb
flash zur verfügung, von denen ich möglichst so wenig wie möglich
benutzen sollte.
im moment ist das programm ca 13 kb groß gestiped sinds nur noch 5,8kb :)
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.
Gruß
Bernhard
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org