• ベストアンサー

C言語でcgi

こんにちわ!C言語でcgiを作成したいと思っています。 C言語でcgiを作成するに当たって参考になる書籍や サイトなどございましたら是非教えていただきたいです。 (書籍を中心に教えていただきたいです。) 過去に書店でC言語の本を読んだりしていたのですが どれもcgiとは方向性が違うような気がしました。 また効率がいい技術の習得方法などもあわせて教えていただければ うれしいです。よろしくお願いします。

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

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

まず、何故C言語でCGIを作成したいのでしょうか? C言語は比較的OS寄りの言語なので入出力等でミスがあると即座にセキュリティホールにつながってしまいます。 性能を重視するのであれば、mod_perl でもC言語ほどまではいきませんが、かなりの性能が得られます。 CGIで商用アプリケーションの作成を考えている等の理由でどうしてもC言語でCGIを作成する必要があるというのであれば、書籍は少ないのが実情なので (それだけニーズがない)、Webで勉強されるのが良いかと思います。 少し探した限りでは以下のようなサイトが参考になりそうです。 http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/ http://www2k.biglobe.ne.jp/~motoi/cdecgi.html http://www.kumei.ne.jp/c_lang/intro/no_80.htm

smalldeveloper
質問者

補足

ご回答ありがとうございます。 C言語でcgiを作成する理由は、今までPerlでコンテンツを作成してきたのですが、 特定のウェブサイト(ニュースサイト)を巡回させるクローラを作成しようと思いつき、 Perlでは実行速度がC言語より遅いからです。 そしてクローラ作成後は、検索エンジンを作成し今までクローラで書き込んだインデックスから ニュースを検索できるようにするつもりでいます。 脆弱性の問題は存じていましたがやはりPerlで作成するべきでしょうか? 速度の問題が無ければPerlで作成する予定だったのですが、C言語とPerlやその他のインタープリタ型言語では 実行速度の違いはどれくらい差がありますか? それと「かなりの性能が得られます。」 とありましたが、クローラ及び検索エンジンを作成することを考えた場合、Perlでは実現が厳しかったりしますか? 質問が増えてしまいましたが、もし宜しければ再度ご教授のほどお願いいたします。

その他の回答 (3)

回答No.4

少し異形ですが、こちらも参考にしてください。 Apacheモジュール プログラミングガイド http://www.amazon.co.jp/exec/obidos/ASIN/4774117994/250-7191616-7199430 上記の書籍にも書いてありますが、モジュール化されていないC言語のCGIはmod_perlよりかなり遅いと思ってください。 しかしC言語でCGIをするのは非常に有意義です。 CGIはApacheモジュールまでのステップアップと割り切ればいいのではないでしょうか? Apacheモジュールしか出来ないことは多々あります。 自分がフリープログラマとして生き残れたのは製作者の少ない、Apacheモジュールの開発ができたからです。 それでは、頑張ってください。

参考URL:
http://www.amazon.co.jp/exec/obidos/ASIN/4774117994/250-7191616-7199430
smalldeveloper
質問者

お礼

Apacheのモジュールですか…難しそうですね。 モジュール化されていないC言語のCGIという意味がイマイチよくわからないので勉強しなおしてみようと思います。 ご回答ありがとうございました。

  • parapa
  • ベストアンサー率15% (42/273)
回答No.3

そもそもクローラーをCGIにする必要性は? 普通のCアプリとして作ればいいのに で表に出る検索エンジン部をperlとかで つくればいいのにどうして極端に どっちもCまたはperlって考えるの? きつい言い方だけどその程度の事も 思いつかないなら下手なクローラー作って 相手のサーバに対してdosアタックでもして ダウンさせそうですね。

smalldeveloper
質問者

補足

実は最初はクローラをC言語で、エンジンをPerl という風にしようと思っていたのですが、 性能の違いということがあったので どれくらい違うのかということをお尋ねさせていただきました。 CGIにする理由はニュースの内容を取得した際に ブラウザ上に何らかの内容を表示させようと考えているからです。 また既にPerlで簡単なクローラを作成していますが、 テスト段階では相手サーバに対してdosアタックをするといったようなことはありません。 ご回答ありがとうございました。

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.1

C&Perl 5によるCGI入門 http://www.amazon.co.jp/exec/obidos/ASIN/4795296960/qid=1133600426/sr=1-2/ref=sr_1_2_2/503-3218980-8359954 がお勧めなのですが、在庫切れですね。 技術者のためのC言語でつくるCGI入門 http://www.amazon.co.jp/exec/obidos/ASIN/477411541X/qid=1133600426/sr=1-1/ref=sr_1_2_1/503-3218980-8359954 は、ずばりそのものなのですがサンプルプログラムの質が悪すぎて、お勧めできません。 効率の良い習得法は、実際書いてみることです。 ただ、Cで書いたものは、バッファオーバーフローなどの脆弱性を持つ危険を常に含んでいるため、試験用のサーバーを内部に立てて実験しましょう。

smalldeveloper
質問者

お礼

ご回答ありがとうございます。 近いうちに書店に行き見てみようと思います。 ありがとうございました。