On 30-Jan-00 Manfred Tremmel wrote:
1. "void main (void)" und "exit(0);" ist eigentlich schon mal ein Fehler. Als Rückgabewert definierst Du void, also kein Rückgabewert, lieferst aber dann doch 0. Also Rückgabeparamter int setzen.
Eigentlich nicht. void main(void) ist natürlich Quatsch. Aber exit() ist ein Funktionsaufruf und hat nix mit dem Rückgabewert von main() zu tun - auch wenn es den Rückgabewert des Programms für Linux setzt. Den Rückgabewert einer Funktion definiert man dagegen mit dem Schlüsselwort "return". Gute C-Compiler verlangen in einer Funktion, die als "int main()..." deklariert ist, auch ein return - und man kann exit() dann nur zusätzlich verwenden oder muß halt void main() schreiben, was nicht dem ANSI-Standard entspricht. Richtig wäre IMHO: int main(int argc, char **argv, char **envp( { ... return 0; }
2. Die CGI-Paramter werden doch an die Main-Funktion über- geben, mit "void main (void)" verweigerst Du aber die Annahme, oder seh ich das falsch.
Das siehst Du u.U. falsch. Wenn sein CGI-Programm mit der GET-Methode arbeitet, kriegt er die CGI-Parameter aus stdin. Allerdings sollte er CONTENT_LENGTH auswerten, und dazu bräuchte er envp.
Mach mal ein "anständiges" main, also: int main( int argc, char *argv[] )
int main(int argc, char **argv, char **envp) wäre korrekt. Nur dann kann er CONTENT_LENGTH und die CGI-Parameter auslesen.
3. "printf ("Content-type: test/plain\n\n");" mach mal aus dem test ein text.
Das sollte er allerdings. -- =========================================================== Erhard Schwenk - alias Bitrunner =)B==o) =========================================================== No Spam replies please. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com