code funktioniert nur einmal
-
Hi folgender Code funktioniert nur einmal danach muss ich den Rechner neu starten
und kann ihn dann erst wieder ausführen.#include <iostream> #include <string> #include <cstdlib> #include <unistd.h> #include <sys/wait.h> using namespace std; int main(){ string eingabe=getenv("QUERY_STRING"); string nummer; string message; pid_t pid; pid=fork(); int pos; int messagepos; int nummerpos; int endlength; int status; pos=eingabe.find('='); eingabe.erase(0, pos+1); nummer=eingabe; message=eingabe; nummerpos=nummer.find('&'); endlength=nummer.length(); nummer.erase(nummerpos, endlength - nummerpos); endlength=nummer.length(); char *nummernchar = new char[endlength+1]; for (int i=0; i<endlength; i++){ nummernchar[i]=nummer[i]; } messagepos=message.find('='); message.erase(0, messagepos+1); endlength=message.length(); char *messagechar = new char[endlength+1]; for (int i=0; i<endlength; i++){ messagechar[i]=message[i]; } if(pid==0){ char *parameter[]={"yaps", nummernchar, messagechar, 0}; execve("/usr/bin/yaps", parameter, 0); delete[] nummernchar; delete[] messagechar; exit(42); } else{ cout << "Content-type: text/html" << endl << endl; cout << "<HTML>" << endl; cout << "<BODY>" << endl; cout << "Sie haben folgende Nachricht: " << message << endl; cout << "<br />" << endl; cout << "an folgenden Nummer: " << nummer << endl; cout << "<br />" << endl; cout << "gesandt" << endl; cout << "</BODY>" << endl; cout << "</HTML>" << endl; } wait(&status); return 0; }
Ich habe auch versucht die Nummer und die Message direkt einzugeben d.h nicht über den Query_string einzulesen so das ich das Programm auf der Shell ausführen kann geht auch nicht. Auserdem kommen die Statusmeldungen von yaps auf dem ausführenden Browser und das möchte ich auch vermeiden.
Ich hab keine Ahnung wie ich da weitermachen soll. Für Vorschläge bin ich dankbar.MFG eiskalt
-
ich weiss nicht genau wo der Fehler liegt, da ich den Code nur überflogen habe, aber folgende Sachen sind mir aufgefallen
1. http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=Declare#Answ
2. verstehe ich nicht, warum du fork() so früh aufrufst
-
2. verstehe ich nicht, warum du fork() so früh aufrufst
Ich hatte da so ein Beispiel mit fork() aber das wirds ja kaum ausmachen
und was ist dir 3. aufgefallen?
[edit] neu erkenntniss und zwar wird die sms abgeschickt nur bringt mir der Server beim 2. Versuch einen Internal servererror bein 1. Mal wir noch die nummer und die Nachricht ausgegeben und die sms geschickt.
[/edit]MFG eiskalt
[ Dieser Beitrag wurde am 18.03.2003 um 23:26 Uhr von eiskalt editiert. ]
[ Dieser Beitrag wurde am 18.03.2003 um 23:30 Uhr von eiskalt editiert. ]
[ Dieser Beitrag wurde am 18.03.2003 um 23:40 Uhr von eiskalt editiert. ]