• ベストアンサー

C言語でCGI

初めてC言語でCGIをやるわけではないのですが、わからないことがあるので質問させていただきます。 http://www2k.biglobe.ne.jp/~motoi/cdecgi.html このサイトを参考に話を進めさせていただきます。 まず、htmlで <HTML> <HEAD> <TITLE>テストページ</TITLE> </HEAD> <BODY BGCOLOR=#a0d0ff> <FORM METHOD="get" ACTION="test2.cgi"> <INPUT TYPE="text" NAME="fieldname" SIZE="50"><BR> <INPUT TYPE="text" NAME="fieldname2" SIZE="50"><BR> <INPUT TYPE="text" NAME="fieldname3" SIZE="50"><BR> <INPUT TYPE="submit" VALUE="書き込み"> </FORM> </BODY> </HTML> と書き、C言語で #include <stdio.h> #include <stdlib.h> #define getenv1(a) ((pdata=getenv(a)) ? pdata : "(NULL)") main() { int len; printf("Content-type: text/html\n\n"); printf("<HTML><HEAD></HEAD><BODY>\n"); printf("%s<BR>\n",getenv("QUERY_STRING")); printf("</BODY></HTML>\n"); } と書きます。 それからコンパイルを実行し、パーミッションも変更して実行を WEBサーバを作らずに実行するとファイルのダウンロードが始まります。(ファイル名はtest2.cgi) WEBサーバが無ければ文字をCGIに表示することは無理なのでしょうか? 教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>WEBサーバを作らずに実行するとファイルのダウンロードが始まります。(ファイル名はtest2.cgi) 実行というのはどうやって? formページの"書き込み"ボタン押下でしょうか? formページはブラウザからローカルのファイルを開いたでしょうか? 上記の通りであれば、test2.cgiがダウンロードされるのは通常の動作です。 Webサーバがなければ実行された結果は戻りません。

noname#77475
質問者

お礼

実行というのはおっしゃるとおり、formページの書き込みボタンを押したときのことをいいます。 Webサーバがなければ動作しないのですね。 よくわかりました。 ありがとうございます。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

CGI自体がWebサーバとその他のプログラムをつなぐインターフェースなのでWebサーバがなければ成り立ちませんね。

関連するQ&A