• ベストアンサー

C言語でどういったCGIを作ることが出来ますか?

ホームページを作る上で、C言語というのは殆ど使われない言語のようですが、C言語を使うことによりホームページ上で何か便利な働きをするCGIはありますでしょうか? ちなみに私はHTMLのみでホームページを作成した経験は何度かありますが、C言語には全く触れたことがありません。 そこでC言語を用いて何か出来ればというのがありまして。 C言語を利用することにより、こういった便利な事が出来るといったアドバイスなどありましたら、ぜひご教授願います。

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

  • ベストアンサー
  • mizutaki
  • ベストアンサー率33% (111/333)
回答No.2

C言語はexe形式が完成系ですから、 PHPやPerlで作成した場合と違って ダウンロードしてもプログラムのソースが見られないという特徴があります。 Web上の様々な人に向けて公開しても、中のソースは見られないから、自分が意図しない使用をされる危険性が低いです。 後はPerlやPHPなんかのスクリプト系言語と違い、コンパイラ言語は非常に高速に動きます。 複雑だったり、大量の処理が必要な、そんな物を作りたいのであれば、 いい選択肢だと言えますね。

ybb8m
質問者

お礼

ご回答有難うございます。 C言語はソースが見られないんですね。 また高速に動くということは検索システムのようなデータベースを利用する上で有効かもしれませんね!

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.6

補足しますとC言語の弱点としては、スタックオーバーフローの脆弱性を作ってしまう可能性が非常に高いです。スタックの仕組みやポインタ、配列の知識がちゃんとしていないとC言語で書かれたCGIは脆弱性だらけになる可能性があります。 それにC言語用のCGIフレームワークで有名なのも私は知らないのですが、もし適当なのが無いとしたらかなりの部分を自分で作らないといけません。膨大なコードを書かないといけないのでPerlやPHPが数行で書けるプログラムもC言語では場合によっては数千行に達してしまうでしょう。

ybb8m
質問者

お礼

またのご回答有難うございます。 かなりお詳しいみたいですね。 C言語というのは少しでも配列を間違えるとかなり不具合が生じるみたいですね。 かなり詳しくないと完全なものは作れない気がしますね。 数千桁とは驚きです!

すると、全ての回答が全文表示されます。
回答No.5

実例としては……。 確かmimetexと言うCGIはCで書かれていたんじゃなかったのかな? 数式をWeb上に表示するCGIです。 mimetex: http://www.forkosh.com/mimetex.html

ybb8m
質問者

お礼

ご回答有難うございます。 こんなCGIがあったとは全く知りませんでした! かなりマニアック感はありますね~^^; C言語はやはり奥が深いですね。

すると、全ての回答が全文表示されます。
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

あっそれとCのCGIが動かせるレンタルサーバは少ないです。 自宅サーバーでCのCGIを使っている方々はいるようですが。

ybb8m
質問者

お礼

ご回答有難うございます。 C言語が扱えるレンタルサーバーは少ないようですね。 それだけプロ指向ということなのかもしれませんね。

すると、全ての回答が全文表示されます。
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

私のイメージでは、 負荷がとても重い処理→C言語 中間→Java 負荷が軽い処理→PerlやPHP ですかね。 文字列処理とかC言語だと面倒ですし、メンテナンス性とか、ガベージコレクションのない不安定さと言う面でもC言語は劣ります。 ともかく複雑で重くてしょうがないから速くしたい!って用途向きですかね。なので使うのは主にプロの方々です。

ybb8m
質問者

お礼

ご回答有難うございます。 それぞれの言語によって重さが違ってくるんですね。 メンテナンスの面で何かと大変なことがありそうですね。 大変勉強になりました。

すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.1

要するに、HTMLフォーマットに沿った内容を 標準出力に吐き出せればよいのです。 C言語でもJavaでも、PHPやRubyなどのスクリプト言語でも、 考え方は同じです。

ybb8m
質問者

お礼

ご回答有難うございます。 HTMLのファーマットに埋め込めばちゃんと起動するんですね。 勉強になりました。

すると、全ての回答が全文表示されます。

関連するQ&A