C言語のCGIスクリプトをlocalでテストするには?

[上に] [前に] [次に]
1999/07/16(金) 11:30:58
C言語のCGIスクリプトをlocalでテストする方法があれば
教えてください。

C言語のCGIスクリプトについて学びたいと思って探してみたのですが、
一つしか見つかりませんでした。
http://www.onbiz.net/~mew/
他にあれば教えてください。

hiro-kim 1999/07/16(金) 12:17:18
C言語でもそれ以外の言語でも,CGIスクリプトをlocalでテストする方法は同じです。

とほほのCGI入門,Windows 95/98でCGIを動かそう
http://www.tohoho-web.com/wwwcgi4.htm#Win95

1999/07/16(金) 19:29:54
やはり一度コンパイルしてからでないと
だめなんでしょうか?
アップロードしてから
TELNETでコンパイルという作業がめんどうなので。

B-Cus 1999/07/16(金) 19:48:37
ローカルにgccとかegcs入れればいいのでは。
# http://sourceware.cygnus.com/cygwin/

moci [E-Mail] 1999/07/16(金) 20:29:39
ローカルでテストしようというのはとても良いことだと思います。
ただし、めんどうだということだけであれば、結局はソースを
アップロードしてtelnetでコンパイルすることになると
思いますので、あまり解決にはならないかもしれません。
# だったらローカルでのテストなんかやめやめ、とは思わないで
# くださいね。
あと、わたしには質問が「ローカルでテストする方法」と
「C言語のCGIスクリプトを学びたい」の2つあるように
思えました。後者についていくつか…

http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/index.html
昔見てた所(ブックマークが消えていたので検索しなおしました)。

http://orion.info.kitami-it.ac.jp/~iida/how2cgi/
ブックマークに残っていたところ。

http://www2k.biglobe.ne.jp/~motoi/cdecgi.html
Yahoo!のCGIの所にありました。

http://wakusei.cplaza.ne.jp/software/document/fnord/menu.htm
サーバはこのfnord!を使っていました。

B-Cus 1999/07/16(金) 20:46:51
あとさ、「C言語のCGIスクリプト」とは言わない。
実行形式がテキストなものをスクリプトと呼ぶけど
(perlスクリプト、shスクリプト)、Cはコンパイルが必要で、
実行形式はバイナリになります。

この場合「C言語で作ったCGIプログラム」かな。

moci [E-Mail] 1999/07/16(金) 21:19:09
# 言われてみればその通り<スクリプト。何で気が付かなかったかな>自分

■さんには、どのような環境なのかを提示してもらいたいですね。
Macだったりして…その場合はMkLinux?^^;

yasu [HomePage] 1999/07/16(金) 22:02:41
CのCGIはどんなものか知らないのですが、エラーチェックぐらい
だったら、コンパイラで出来るんじゃないですか?
Winだったら、LsiC-86とか。

1999/07/16(金) 22:53:28
すいません忘れてましたWinです。
C言語のアプリ作るソフトで何とかすると言う話を
耳にしたような記憶があるのですが、
どういう内容か忘れました。
開発するのにそういうソフトを利用したりできるんでしょうか?

B-Cus 1999/07/16(金) 23:24:03
> C言語のアプリ作るソフトで何とかすると言う話を
そりゃそうです。C言語のアプリ作るソフト(コンパイラ)無しで
C言語のアプリは作れません。

> TELNETでコンパイルという作業がめんどうなので。
うーん、わかっているのかわかってないのか…

コンパイルした経験がありますか? ローカルで開発したいなら
ローカルにコンパイラを入れればよいことはわかりますね?

> Winだったら、LsiC-86とか。
> ローカルにgccとかegcs入れればいいのでは。
という回答を読んでますか? これがコンパイラです。

CGIを作った経験がありますか? ローカルでCGIを動かしたいなら
ローカルにWWWサーバ入れればいいことはわかりますね?

CGIというのはWWWサーバからプログラムを実行するための
仕組みなので、perlで書こうがCで書こうがlispで書こうが
自由なんです。要は標準入力/環境変数からデータを読んで
標準出力に書き出すだけ。そこらへんわかってますか?


CでCGIやるのはめんどくさいですよ。
すぐ落ちるし。
デバッガ使えないし。
ハッシュなんて便利なのはないし。
perlより速いといっても、プログラマがヘタなら結局遅くなるんだし。

ふじ 1999/07/16(金) 23:59:16
>やはり一度コンパイルしてからでないと
>だめなんでしょうか?
ここがちょと引っ掛かったんですが・・・

UNIXでコンパイルしたバイナリをWindowsに持ってきても使えません。
当然、逆も駄目です。
#念の為。

ウンジャマラミー 1999/07/19(月) 14:30:01
コンパイラを入れれば済む話ですけど、telnetしてコンパイルするのが
一番確実で簡単だとおもうけどなぁ(そんなにめんどうかなぁ?)
それと、コンパイル以外でもチェック方法として"lint"ってコマンドがあります。
これは「Cプログラムの検査と照合」をするもので、コンパイラより厳密な文法チェックをしてくれます。
デバックはCのデバッカ(xdbとか、後はわからん)を使用できます。
>すぐ落ちるし。
これはプログラマ次第。ですよね?>>B-Cusさん
なんにせよ、C言語に限らずプログラム組むなら「めんどくさい」なんて思っていては駄目ですよぉ。

ウンジャマラミー 1999/07/19(月) 15:10:04
追加で、ブラウザを使わず、単体でテストする場合のヒントです。
1.環境変数"REQUEST_METHOD"を設定する。
2.メソッドがGETなら、環境変数"QUERY_STRING"にエンコードしたデータを設定し、プログラムを実行する。
3.POSTなら環境変数"CONTENT_LENGTH"にデータのバイト数を設定し、
  エンコードしたデータを記述したファイルを作成し、プログラム実行時にこれをリダイレクトする。
4.コマンドラインからCGIプログラムを実行する。
5.実行結果(標準出力)を確認。

環境変数の設定は、Bシェルなら
REQUEST_METHOD="POST"; export REQUEST_METHOD"
Cシェルなら
setenv REQUEST_METHOD POST

宜しければ参考にして下さい。

B-Cus 1999/07/20(火) 06:28:19
> プログラム組むなら「めんどくさい」なんて思っていては駄目ですよぉ。
いやぁ、不精、短気、傲慢がプログラマの三大美徳ですから(笑)

いかに簡単に、いかに早くCGIプログラムを完成させるかという観点に立つと、
Cはもういいやって感じ。UNIXのソースいじるとき以外は触る気はしません
(こうやってどんどんCを忘れていくのだ)。もちろん僕の個人的な意見ですけどね。

偶氏 [E-Mail] 1999/07/20(火) 10:11:07
ちょっと支離滅裂になりますが。

私はMS-DOS時代から、親がそういう仕事の関係もあって、
MSC4.0 → MSC5.1 → MSC6.0 と使い続けています。
また、最近になってJPerl 4 for Win32も導入しました。
これを使ってローカルでSSIの動作テストを行うことがありますが、
どんなプログラムでもOSによって動作が違うことは有り得る
ことですから、最終的にはサーバと同じ環境でテストすることが
最善だと思います。

私は最近になって、SSIやCGIをCからPerlに書き換えました。
その時、こちらのサイトを大いに参考にさせて頂きました。
その際、Web関係以外のプログラムもPerlに書き換えを試みた
のですが、いろいろ問題が発生しまして(例えば、変数を配列の
添字に使う場合とか)、結局はこちらはCに戻しました。
確かにPerlはプログラムを作るのが簡単で、高機能な部分も
多いようですが、インタープリタ方式のために処理速度が遅い
ことを無視しても、Perlが苦手としている部分もあると思います。

[上に] [前に] [次に]