Hola Robert,
Wichtig ist, dass die erste Ausgabe deiner CGI-Anwendung ein _gültiger_ HTTP-Header sein muss, ansonsten verweigert der Apache die Mitarbeit; wichtig ist vor allem ein Content-Type Header.
Hm - gut, dessen bin ich mir bewusst ("Content-type: text/html", etc.)
(Nur mal so am Rand: Muss es unbedingt C sein?
Nö, ich will mir auch nur etwas "schnelleres" als das folgende in PHP gebaute "Programm" bauen:
<?
function footer()
{
?>
<div style="font: 12px Verdana; color: #414141; border:1px dashed #888888; padding: 4px 4px 4px 40px; margin: 20px 5px; background: #EFEFEF url(/images/ressources.gif) 4px 4px no-repeat;">
<b style="font: 15px Verdana; font-weight: bold;">WauwauWebserver :: Ressourcen</b>
<br>Die Adresse dieses Dokumentes lautet: <tt style="color:#404040;">http://sveni/<?=$_SERVER["REQUEST_URI"]; ?></tt>
<br>Dieses Dokument wird von den <a href="/server/ressources/" style="color:#414141;text-decoration:underline;font-weight:bold;">WauWau - Ressourcen</a> zur Verfügung gestellt.
<br><?=$_SERVER["SERVER_SIGNATURE"]; ?>
</div>
<?
}
if($_SERVER["SCRIPT_NAME"] != $_SERVER["REQUEST_URI"])
{
readfile($_SERVER["PATH_TRANSLATED"]);
footer();
}
else
footer();
?>
der Apache ruft dann für alle html-dateien in dem verzeichnis /server/ressources/ das ding auf, welches dynamisch einen "footer" dranhängt. Ich dachte, mit C könnte man das schneller machen, da das ja immerhin ganz schön oft aufgerufen wird.
C speichert Zeichenketten als Pointer auf einen Speicherbereich, der mit einem Null-Byte abgeschlossen wird. Damit kann man sich schön in den Fuß schießen. C++ hat zwar mit Pointern auch so seine Probleme und ist von der Performance nicht ganz so toll wie C, bietet aber gute Klassen, mit denen sich viel Stress ersparen kann.)
Ich habe momentan noch kein bisschen richtig ahnung von C.
Per getenv(), dem du den Namen der Umgebungsvariable übergeben musst oder mit der globalen Variable environ, die alle Umgebungsvariablen als Array enthält. Wenn du wissen willst, welche Variablen alle gesetzt sind, kannst du ein Testprogramm schreiben, das folgendes macht:
int i;
for (i = 0; environ[i]; ++i)
puts(environ[i]);
ich werd's mal probieren.
Wäre super wenn mir jemand helfen könnte. Ich habe zwar mal von c-als-cgi-einbinden-modulen gehört, habe aber keinen blassen schimmer.
Hab auch nur mal Testweise damit gespielt.
aja - klar.
wauWau
+-- WauWau Selfcode
| ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
+-- WauWau Nostalgie
| Die Bedeutung des Bellens ("WauWau") liegt ursprünglich darin, dass ein
| Gruppenfremder gewarnt oder ihm Alarm signalisiert wird.
+-- WauWau Heute
| Heutzutage ist die Bedeutung von "WauWau": Achtung, hier kommt "WauWau"!
| Die Bedeutung liegt hierbei auf den "Wau", und zwar auf beiden.
+-- WauWau E-Mail
| Coming soon...