C言語関係掲示板

過去ログ

No.396.C言語によるCGI化について

[戻る] [ホームページ]
No.2712

C言語によるCGI化について
投稿者---TOKI(2002/09/16 05:01:12)


はじめまして。
CプログラムをCGI化するときに分からないことがあります。
プログラム言語実習で使用する言語は何でもいいと教授に言われ、
少しだけ経験のあるCを選んでクロスワード(パズル)製作に
取り掛かりました。Unix環境で数ヶ月しか学んでいません。
さっそくCGI化しようと思ったら「grep」は外部関数なので
使用できません、とのコメントが。CによるCGI化はシェルを
解放しなくてはいけないと記憶にありますが、grepもシェルの
一部なんですか?grepの中身はどんなものか、想像できません
が、ためしに自作してみますと冗長なプログラムに陥りやすく
分かりづらくなります。やっぱりPerlを使用したほうが一般
的でしょうか。


No.2721

Re:C言語によるCGI化について
投稿者---kikk(2002/09/17 01:05:08)


ども。


>さっそくCGI化しようと思ったら「grep」は外部関数なので
>使用できません、とのコメントが。CによるCGI化はシェルを
>解放しなくてはいけないと記憶にありますが、grepもシェルの
>一部なんですか?grepの中身はどんなものか、想像できません
>が、ためしに自作してみますと冗長なプログラムに陥りやすく
>分かりづらくなります。やっぱりPerlを使用したほうが一般
>的でしょうか。

grepというと個人的にはコマンドのgrepを最初に思い浮かべるのですが、
grep関数ということは、perlの関数のほうでしょうか?

だとすると、C言語にはgrep関数はありませんので、man regexででてくる
一連のregex関数で代用することになります。セクション3と7の両方に
regexは載ってるかもしれませんが、ここでは3のほうを参照してください。
たぶん7のほうは正規表現そのものについての説明になります。


CGIで行う処理は割と文字列処理が多いと思いますが、強力な文字列処理が
言語の組み込み機能になっているという点が"CGIはperl"といわれるひとつの
理由かもしれません。もっとも、スクリプト言語のなかでperlが特に文字列
処理にすぐれているかどうかはちょっとわかりませんが。とりあえず、
はやってるからperl、って感じでやってるとこが多いようです(こっちのほう
が理由として大きいかも)。

Cだと、文字列処理関数には原始的なものしか用意されておらず、さらに、
他の言語で言うところの文字列型がないというのが決定的につらいところ
です。なお、上記のregex関数も標準関数ではありません。

あと、(わかっておられるかもしれませんが、)Cはシステムに対していろいろ
できすぎてしまうのが問題だったりします。C以外の言語でも、コンパイル
しなければならないものは、いろいろ不安だったり面倒だったり、という
こともあります。以前読んだ本では、開発&実行環境があり、かつ、速度が
ほしいならCでCGIも検討みては、と書いてありました。


まあ、勉強でやるなら、Cにしろperlにしろ、一番自分のためになる方法で
やるのがよろしいかと。。


では。


おまけ1
過去ログor書き込みにCでgrepコマンドを作るというのがあったと思います。
興味があれば見てみるといいかもしれません。

おまけ2
世の中には、CGI使用OKどころか、シェル使用OK、sendmail使用OKな、
すばらしい無料レンタルWebスペースもあります。興味があれば。。

No.2739

Re:C言語によるCGI化について
投稿者---TOKI(2002/09/19 12:28:20)


>おまけ1
>過去ログor書き込みにCでgrepコマンドを作るというのがあったと思います。
>興味があれば見てみるといいかもしれません。
>
>おまけ2
>世の中には、CGI使用OKどころか、シェル使用OK、sendmail使用OKな、
>すばらしい無料レンタルWebスペースもあります。興味があれば。。
本当ですか?
試して見ます。ご高説ありがとうございます。