- ベストアンサー
C言語でどういったCGIを作ることが出来ますか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
C言語はexe形式が完成系ですから、 PHPやPerlで作成した場合と違って ダウンロードしてもプログラムのソースが見られないという特徴があります。 Web上の様々な人に向けて公開しても、中のソースは見られないから、自分が意図しない使用をされる危険性が低いです。 後はPerlやPHPなんかのスクリプト系言語と違い、コンパイラ言語は非常に高速に動きます。 複雑だったり、大量の処理が必要な、そんな物を作りたいのであれば、 いい選択肢だと言えますね。
その他の回答 (5)
- zwi
- ベストアンサー率56% (730/1282)
補足しますとC言語の弱点としては、スタックオーバーフローの脆弱性を作ってしまう可能性が非常に高いです。スタックの仕組みやポインタ、配列の知識がちゃんとしていないとC言語で書かれたCGIは脆弱性だらけになる可能性があります。 それにC言語用のCGIフレームワークで有名なのも私は知らないのですが、もし適当なのが無いとしたらかなりの部分を自分で作らないといけません。膨大なコードを書かないといけないのでPerlやPHPが数行で書けるプログラムもC言語では場合によっては数千行に達してしまうでしょう。
お礼
またのご回答有難うございます。 かなりお詳しいみたいですね。 C言語というのは少しでも配列を間違えるとかなり不具合が生じるみたいですね。 かなり詳しくないと完全なものは作れない気がしますね。 数千桁とは驚きです!
- cametan_42
- ベストアンサー率61% (153/249)
実例としては……。 確かmimetexと言うCGIはCで書かれていたんじゃなかったのかな? 数式をWeb上に表示するCGIです。 mimetex: http://www.forkosh.com/mimetex.html
お礼
ご回答有難うございます。 こんなCGIがあったとは全く知りませんでした! かなりマニアック感はありますね~^^; C言語はやはり奥が深いですね。
- zwi
- ベストアンサー率56% (730/1282)
あっそれとCのCGIが動かせるレンタルサーバは少ないです。 自宅サーバーでCのCGIを使っている方々はいるようですが。
お礼
ご回答有難うございます。 C言語が扱えるレンタルサーバーは少ないようですね。 それだけプロ指向ということなのかもしれませんね。
- zwi
- ベストアンサー率56% (730/1282)
私のイメージでは、 負荷がとても重い処理→C言語 中間→Java 負荷が軽い処理→PerlやPHP ですかね。 文字列処理とかC言語だと面倒ですし、メンテナンス性とか、ガベージコレクションのない不安定さと言う面でもC言語は劣ります。 ともかく複雑で重くてしょうがないから速くしたい!って用途向きですかね。なので使うのは主にプロの方々です。
お礼
ご回答有難うございます。 それぞれの言語によって重さが違ってくるんですね。 メンテナンスの面で何かと大変なことがありそうですね。 大変勉強になりました。
- asuncion
- ベストアンサー率33% (2126/6288)
要するに、HTMLフォーマットに沿った内容を 標準出力に吐き出せればよいのです。 C言語でもJavaでも、PHPやRubyなどのスクリプト言語でも、 考え方は同じです。
お礼
ご回答有難うございます。 HTMLのファーマットに埋め込めばちゃんと起動するんですね。 勉強になりました。
関連するQ&A
- C言語でCGIの生成?
はじめまして。 今、C言語でCGIを利用したページを制作しようと思っています。 まだ勉強を始めたばかりなので、C言語でCGIが作れるのかと疑問に思っています。 Visual C++コンパイラを使用しているのですが、C言語で書いたものをCGIとして動作させるにはどのようにすればいいでしょうか。 初心者なので出来るだけ詳しくご返答ください。 ちなみに、簡易サーバーとしてApacheを使用しています。
- 締切済み
- 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みたいな 携帯用のものとかあるのでしょうか? 携帯サイトを作るための環境にどのようなものがあるのかも教えて頂きたいです。有料、無料どちらも教えていただきたいです。 よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
お礼
ご回答有難うございます。 C言語はソースが見られないんですね。 また高速に動くということは検索システムのようなデータベースを利用する上で有効かもしれませんね!