PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : System Call in C Programm funktioniert nicht wenn es als CGI gestartet wird



Schnitz
15-04-2003, 10:20
Hi All!
Ich habe ein echt komisches Problem. :( Zur Verdeutlichung habe ich ein kleines Beispielprogramm erstellt:



#include <stdio.h>

int main()
{
printf("Content-type: text/html\n\n");
system("htpasswd -b /home/fs2/cgi-bin/abspasswd Odysseus test");
printf("test<br>");
printf("</body>\n");
printf("</html>\n");
return (0);
}


Wenn ich das Programm aus einer Shell herraus aufrufe entstehen keine Probleme und der System Call wird sauber ausgeführt.

Wenn ich das programm nun aber als CGI mit
http://localhost/cgi-bin/test
starte wird zwar das "test" korrekt ausgegeben und es kommt keine Fehlermeldung, aber der System Call (system()) wird "vergessen". ²³ ? :-/

anda_skoa
15-04-2003, 11:01
Hat der Prozess als CGI die nötigen Rechte für den Befehl, den system ausführen soll?

Oder vielleicht hat es eine andere PATH Umgebung und findet den Befehl gar nicht.

Generell bietet es sich an, den Rückgabewert von Funktionen zu checken.

Ciao,
_

Schnitz
15-04-2003, 13:21
jo thx, lag an pfad und rechten :)