• ベストアンサー

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

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

  • ybb8m
  • お礼率66% (1428/2141)

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

  • ベストアンサー
  • 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% (2126/6288)
回答No.1

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

ybb8m
質問者

お礼

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

関連するQ&A

  • C言語でcgi

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

  • C言語でCGIの生成?

    はじめまして。 今、C言語でCGIを利用したページを制作しようと思っています。 まだ勉強を始めたばかりなので、C言語でCGIが作れるのかと疑問に思っています。 Visual C++コンパイラを使用しているのですが、C言語で書いたものをCGIとして動作させるにはどのようにすればいいでしょうか。 初心者なので出来るだけ詳しくご返答ください。 ちなみに、簡易サーバーとしてApacheを使用しています。

    • 締切済み
    • CGI
  • C言語を用いたCGI

    C言語を用いたCGIでアクセスカウンターを作成したいのですが、参考になるようなサイトはありませんか?

    • ベストアンサー
    • CGI
  • CでCGI

    今度、C言語でCGIを組むんですけど、 Perlについての書籍やホームページはよく ありますが、C言語のものはあまりなくて困っています。なにかお勧めの本やホームページがありましたら どなたか教えていただけないでしょうか。お願いします。

    • ベストアンサー
    • CGI
  • C言語でCGI

    はじめて、C言語でCGIをプログラムを作成します.サーバーはApacheです。 フォームから、ユーザー名とパスワードを入力してもらって、送信ボタンをクリックしたら,まず、サーバー内にある.テキストファイルの「アクセス拒否ユーザーリスト」のユーザー名と比較し,該当したらAというHTMLファイルを表示させ,該当しなかったら,BというHTMLファイルを表示させたいのですが,どのようにしたらよろしいでしょうか?また、ユーザー名とパスワードの他にホスト名の情報も欲しいのですが,どのように受け取ったらいいのでしょうか? ユーザー名、パスワード、ホスト名を格納する構造体を使用するほうがいいでしょうか?その際A,BのHTMLファイルにアクセスした時間とユーザー名,ホスト名をログファイルに記録したいのですが,やり方がまったく判りません. 勉強不足で申し訳ありませんが,どなたかご教授ください.

    • ベストアンサー
    • CGI
  • C言語で作ったプログラムをCGIで動かすには

    C言語で作ったプログラムをCGIで動かすにはどうすればいいのでしょうか? サーバ側になにをアップし、ブラウザ側で何を呼び出せばいいのかわかりません。 EXEファイルの拡張子をcgiにしても ダウンロードされるだけだったし(当たり前ですか?)。 ちなみにサーバは会社のサーバを使っていて、CGIも使えるはずです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • C言語でCGI

    初めてC言語でCGIをやるわけではないのですが、わからないことがあるので質問させていただきます。 http://www2k.biglobe.ne.jp/~motoi/cdecgi.html このサイトを参考に話を進めさせていただきます。 まず、htmlで <HTML> <HEAD> <TITLE>テストページ</TITLE> </HEAD> <BODY BGCOLOR=#a0d0ff> <FORM METHOD="get" ACTION="test2.cgi"> <INPUT TYPE="text" NAME="fieldname" SIZE="50"><BR> <INPUT TYPE="text" NAME="fieldname2" SIZE="50"><BR> <INPUT TYPE="text" NAME="fieldname3" SIZE="50"><BR> <INPUT TYPE="submit" VALUE="書き込み"> </FORM> </BODY> </HTML> と書き、C言語で #include <stdio.h> #include <stdlib.h> #define getenv1(a) ((pdata=getenv(a)) ? pdata : "(NULL)") main() { int len; printf("Content-type: text/html\n\n"); printf("<HTML><HEAD></HEAD><BODY>\n"); printf("%s<BR>\n",getenv("QUERY_STRING")); printf("</BODY></HTML>\n"); } と書きます。 それからコンパイルを実行し、パーミッションも変更して実行を WEBサーバを作らずに実行するとファイルのダウンロードが始まります。(ファイル名はtest2.cgi) WEBサーバが無ければ文字をCGIに表示することは無理なのでしょうか? 教えてください。お願いします。

    • ベストアンサー
    • CGI
  • cgiをC言語を使っての改行の仕方を教えて下さい

    今、ホームページの作成をしています。 その際“応募ページ”で送信ボタンを押すと、cgiを使って入力確認の画面を 表示するようにしたいのですが、入力画面のTHML言語でTEXTAREAを使うと その後の入力確認画面で入力通の改行ができません。 入力確認画面のソースを表示すると、入力画面で指定した箇所で改行はされているようなのですが、各行の最後にHTMLLの改行タグ<BR>が表示されていません。 改行タグを各行ごとに入れられれば良いのですが、どうしてもやり方が わからないので、良いやり方があれば教えていただけませんか。 cgi上ではC言語を使い、ホームページを表示しています。 よろしくお願いします。

  • 携帯のホームページ、プログラミング(CGI)等について

    sea_clear_sky8です。 携帯のホームページ(CGI等含む)を作成したいのですが、 HPで調べましたが、何があるのかよくわからない状態です。 パソコンのホームページを作るHTMLタグや、 CGIなら、ASP,CGI(C,PERL)、PHPとかで 携帯のHP,CGI等作れるのでしょうか? 携帯サイトを作るにはどうやるのかわかりませんので、 どんな言語でつくれるのか、概要だけでも教えてください。 また、携帯のサイトを作るための環境として、 パソコンのHPで利用されているCGI等を作るためのAPACHEとかIISみたいな 携帯用のものとかあるのでしょうか? 携帯サイトを作るための環境にどのようなものがあるのかも教えて頂きたいです。有料、無料どちらも教えていただきたいです。 よろしくお願いします。

  • CGIって??

    ホームページに掲示板をつけようと調べたところ、CGIという言語がでてきて とまどっています…(すいません超初心者なんです) ブラウザとHTMLだけではつくれないんでしょうか? それと、超初心者でもわかるCGIの本などがあったらぜひ教えていただけませんか? ぜひ!お願いします!!

    • 締切済み
    • CGI