Veröffentlicht 8. Juni 200421 j Hi, ich muss in einem C-File auf der Kommandozeile das Programm CuRL mit ein paar Parametern aufrufen. zu fÃnden bei mir aufn Server unter /usr/local/curl -D ...... das ganze gibt mir einen xml-string zurück, den ich weiterverarbeiten muss. ich weiss nicht welche funktion wie fork() oder exec() auch eine rückgabe haben. um schnelle hilfe würd ich mich freuen. cheers, dany
8. Juni 200421 j erm wie bitte soll das funktionieren? Anwendungen können nur einen integer zurückgeben welcher ihren Endstatus angeben soll. Ich kenne das Programm "curl" nicht aber bin mir zu 99,9% sicher das es keinen String zurückgeben kann.
8. Juni 200421 j Hallo, Ich habe das so verstanden, dass die Ausgabe des Child-Prozesses vom Vater-Prozess weiter verarbeitet werden soll (nicht zu verwechseln mit den Rückgabewerten, die beispielsweise durch wait() & friends ausgewertet werden können). Dazu wird eine Verbindung zwischen Vater und Kind-Prozess erzeugt (pipe()) und die Filedescriptoren werden mit hilfe von dup2() entsprechend umgebogen. @silicon: Ich habe jetzt leider auf die Schnelle kein einfaches Beispiel zu Hand, aber schau Dir mal die folgenden Links an: http://jan.netcomp.monash.edu.au/OS/l9_1.html http://www.erack.de/download/pipe-fork.c http://www.cs.uleth.ca/~holzmann/C/system/pipeforkexec.html Bei Bedarf kann ich Dir auch noch ein Beispiel raussuchen (ginge aber erst heute abend/morgen früh). Nic
8. Juni 200421 j @guy: doch! /usr/local/curl -d "...." setzt einen HTTPS-REQUEST ab, von dem ich als Rückgabe einen XML-String bekomme, auf jedenfall wird er direkt auf der Shell ausgegeben. @nic: danke, ich werd die links mal abchecken. cheers, dany
8. Juni 200421 j Das heißt nicht das er vom Programm zurückgegeben wird, sondern das es das Ergebnis einfach ausgiebt Die Links von nic könnten dir aber evtl. trotzdem weiterhelfen.
8. Juni 200421 j hm, wie auch immer... ich bin kurz vorm ausflippen, hab das alles so schön in php gecodet und jetzt muss ich den rotz in c schreiben ****** vielen dank bisher, aber das wird noch richtig hardcore wie ich sehe. das ist alles so mega kompliziert. @nic_power: ja das sieht schon mal ganz gut aus, curl -d setzt nen https-request ab und hat als ausgabe einen xmlstring zb. <payment> <resultcode>00</resultcode> <statusdescription>19</statusdescription> </payment> brauche dann wohl auch noch einen xml-parser oder? :floet: cheers, silicon
8. Juni 200421 j Hallo, brauche dann wohl auch noch einen xml-parser oder? :floet: Ja, sofern Du die Daten innerhalb Deines C-Programms auswerten möchtest, läßt sich das wohl nicht vermeiden. Je nach Struktur der Ausgaben und dem Verwendungszweck, musst Du aber nicht unbedingt einen kompletten Parser implementieren. Bist Du auf C angewiesen, oder kommen auch noch andere Alternativen in Frage? Nic
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.