AN HTTPD ゲストブック/コメント集(2005年4月17日23:23)


詳細不明君 natumihappy2000@yahoo.co.jp 2005/04/20 20:05

Perl,Ruby,Python,PHPとは違い大変でしたが、いとさん、中田昭雄さんのおかげでC言語が使えるようになりました。
ありがとうございました。


いと gfh05223@nifty.com 2005/04/20 01:19

詳細不明君

「実行パス」と「一般パス」という概念があります。
「実行パス」とはエイリアスで上側の実行パスと書かれた欄に定義されたパスのことです。
「一般パス」とは実行パスではない残りのすべてのパスのことであり、エイリアスの
一般パスと、エイリアスで定義されていない全てのパスの集合です。

拡張子に関わらず、すべてのCGIファイルは実行パスにあればCGIとして実行されます。
また、拡張子(.cgi/.php/.exeなど)毎に一般パスにあるCGIファイルを実行するかどうかを
「一般パスでも実行する」で設定します(「般」のチェックで確認可)。

拡張子 .exeはデフォルトでは「般」にチェックがないので、test.exe を実行するには
実行パス欄に書かれたローカルパスに置かなければ実行されずにダウンロードになります。

正解を言ってしまうと、実行パス欄に
 v /cgi-bin  C:\www\public_html\cgi-bin
のように設定すれば実行されるようになると思います。

他の方法として .exe の「般」にチェックしても実行されるようになりますが、
使い方として .exeのファイルはダウンロードしたいことの方が多いので、
デフォルトのまま .exeだけは「般」にチェックしない方がいいと思います。

「EXE形式の実行」は例えば test.exe というファイル名を
test.cgiと変更しても実行できるようにするときに
拡張子 .exeではなく .cgiの設定の方にチェックします。
WindowsとUNIX/Linuxで同じファイル名にしたいときなどに使いますが、
namazu専用仕様?かもしれません。


中田昭雄 nakata@st.rim.or.jp 2005/04/19 21:01

詳細不明君へ、
それで何かうまくいかないことがあるのでしょうか?


詳細不明君 natumihappy2000@yahoo.co.jp 2005/04/18 21:42

「test.c」のソースは
#include <stdio.h>
void main(void)
{
printf("Content-type: text/html\n\n");
printf("CGItest\n");
}
にして、「test.exe」を「C:\www\public_html\cgi-bin」の中に入れています。


中田昭雄 nakata@st.rim.or.jp 2005/04/18 21:04

詳細不明君へ、
デフォルト設定のままなら、test.exe を 仮想パス /cgi-bin に対応したローカルパスにコピーすればよいですね。
その場合、/cgi-bin/test.exe にアクセスすれば実行されます。
ただし、ソース(test.c)を見る限り CGI になっていないので、エラーになるでしょう。


詳細不明君 natumihappy2000@yahoo.co.jp 2005/04/17 23:23

C言語を使おうとコンパイルして「test.exe」「test.obj」「test.tds」ができたんですが、『実行プログラム』等はどのように設定したらいいんでしょうか?

Cファイルは今「test.c」になっています。
「test.c」の中身は

/*「Hello, world.」と表示するプログラムのソースです。*/

#include <stdio.h>

main()
{
printf("Hello, world.\n");
return 0;
}
です。

以下を参考にして
http://www.birdport.jp/CPre/free/
コマンドプロンプトで実行できました。