• ベストアンサー

ホームページをC言語で作りたいのですが

 この度、卒研で簡単なソフトウェアを作ろうとしているものです。  とりあえずJavaScriptとhtmlで作ろうとなり、先生に話をしたところ、C言語で作ることは可能である、と言われました(但し勧められませんでしたが)。  自分は今までC言語によるプログラミングをしていたので出来ればそれを使ってやりたい、と思っているのですが、どういう風にやるのか参考になる例が見つかりません(先生は出張中です)。  どなたかいい例や方法が分かる本、ホームページを教えてください。よろしくお願いします。

noname#33727
noname#33727

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

  • ベストアンサー
  • rentahero
  • ベストアンサー率53% (182/342)
回答No.4

> 実を言えば、CGIというものがどういったものなのか、 > と言う時点で分からないんです。 >  申し訳ありませんが、どなたか簡単に教えてくれませんか? CGI(Common Gateway Interface)についてですか。 RFC 3875がCGIの仕様書ということになってます… http://www.ietf.org/rfc/rfc3875.txt この文書の1章 IntroductionにCGIとはどういうものかということが書かれています。 CGIを作成するにあたっての注意点は以下に。 一般的には、4.1章にあげられているMeta-Variablesは、環境変数を経由して届くので、getenv(3)を使って取り出してください。 また、4.2章のRequest Message-Bodyは標準入力を経由して届くので、fread(3)などを利用して読み込んでください。 また、6章のCGI Responseですが、これも一般的にはprintf(3)などでstdoutにそのまま出力すればよいです。 Response Header FieldsとResponse Message-Bodyの間に空行が必要です。余分にひとつNLを入れるのを忘れないでください。 あとは、そうですね、実行形式のバイナリがそのままCGIとして動作するので、拡張子を.cgiなどのCGIとして動作するものにすればよいでしょう。 一例を挙げておきます #include <stdio.h> #include <stdlib.h> int main(void ) { char *env; env = getenv("QUERY_STRING"); /* QUERY_STRINGは、URLの?以降の部分です。*/ printf("Content-Type: text/html\r\n"); /* Response Header Fields */ printf("\r\n"); /* 空行 以下はResponse Message Body */ printf("<html><body>\n"); printf("This is CGI test program<br>\n"); if(env != NULL) printf("QUERY_STRING=%s", env); else printf("QUERY_STRING is not found"); printf("<br>\n"); printf("<body></html>\n"); return 0; }

その他の回答 (7)

  • rentahero
  • ベストアンサー率53% (182/342)
回答No.8

> コンパイルや実行の方法がよく分かりません。 > ".c"でやればいいのでしょうか? CGIにしたい場合のコンパイルは特段なにもいうことはありません。普通にコンソールアプリケーションを作る形でよいでしょう。 つまり、 gcc -o a.cgi a.c などです。 設置はシェルスクリプトやperlなどで作成されたCGIと同じです。違うのはperlやシェルスクリプトはテキストベースのスクリプトであるのに対して、コンパイルした機械語のバイナリファイルだということだけです。 パーミッションも同様です。 簡単ですから、まずは一度やってみればいかがですか。

noname#33727
質問者

お礼

 なるほど、普通にコンパイルするだけみたいですね。杞憂でしたか。  実行はシェルやperlと同じということですね。じゃあ、C言語にしたところで何か特別なことはない、という事になりますね。  ご回答ありがとうございました。

noname#33727
質問者

補足

 補足ではありません。ご報告です。  実は、いろいろあって、予定を変更することになりそうです。変更後では、CGIを使うことは難しそうなので、この質問を締め切らせていただきます。  ご回答してくださった方々、ありがとうございました。  尚、ポイントはahoaho_hiroさんとrentaheroさんに送ります。

  • 5S6
  • ベストアンサー率29% (675/2291)
回答No.7

昔JRの仕事でやりました。 各種情報を選択、入力してその結果を出すというものです。 HTMLの"POST","GET"とかでユーザーの入力を取得し DB検索、結果表示です。 ただ作成するだけなら for (i=0;i<10;i++) { printf("<TR>"    for (j=0;j<5;j++)    {    //表のデータ    printf("<TD>%d,%d</TD>\n",i,j);    } printf("</TR>\n" } のようにするだけです。(IIS環境) ようするに printfでHTMLタグを書きます。 JavaScriptは入力規則のチェックに使いました。 ソースもあるけど、さすがに公開するのはまずいので・・・ コンパイルはWindows(IIS)ならVC Unix系ならgccを使います。 http://www.travel.eki-net.com/area/index.asp

参考URL:
http://www.travel.eki-net.com/area/index.asp
noname#33727
質問者

お礼

 なるほど、これならばすぐに出来ますね。これも一つの方法ですね。  ご回答、ありがとうございました。

回答No.6

No.2です。 卒研だから今まで学んだことを活かすという意味で良い選択だと思いますが、C言語を使ったCGIは、業務ではあまり使われていないと思います。先生が勧めなかった理由かもしれません。 主流はPHPでしょうね。DBも使ってWEBアプリが作れれば、その道に進んだ時にかなり約に立つと思いますよ。 ASPやJAVA(JSP、Servlet)もお勧めです。 ASP、JSPならコンパイルの必要はありません。サーバが勝手にやってくれます。 どれも基本的な考え方は同じで、「アクセス毎にプログラム実行でHTMLを作り出す」というものです。 何を使って作るのか、先生に相談してみて下さい。 私はJAVA(JSP、Servlet)がお勧めです。

noname#33727
質問者

お礼

 少しお返事が遅くなってしまいました。申し訳ありません。  C言語のものは使われないんですか。それもあるのかもしれませんね。  Javaに関しての知識が無いので、少し尻込みしますね。  とりあえず、先生に連絡・相談をしているところです。これから先を行うかどうかは先生のご回答によるところです。  ご回答ありがとうございました。

  • rentahero
  • ベストアンサー率53% (182/342)
回答No.5

ちなみに#4であげたCプログラムと同様の動きをするシェルスクリプトは、以下のとおり #!/bin/sh printf "Content-Type: text/html\r\n" printf "\r\n" printf "<html><body>\n" printf "This is CGI test program<br>\n" if [ -n "$QUERY_STRING" ]; then printf "QUERY_STRING=$QUERY_STRING" else printf "QUERY_STRING is not found" fi printf "<br>\n" printf "<body></html>\n" exit 0 UNIXの場合、このスクリプトに実行権限をつけて(chmod +x a.cgi など)HTTPサーバからCGIとして呼び出すと同様に動きます。 参考になれば。

noname#33727
質問者

お礼

 ご回答ありがとうございます。  CGIのことはいくらか分かったと思います。  例までつけていただき、有難いのですが、コンパイルや実行の方法がよく分かりません。".c"でやればいいのでしょうか?  このような初歩的なところで躓いて申し訳ありませんが、教えていただけませんか?

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

先生が「可能である」とおっしゃったのは、おそらくCGIを作ることについてかと思います。 C言語で、より実用的なホームページ作成プログラムを作ることは可能です。HTMLをアップロードする前に、そのC言語のプログラムを通しておくのです。 たとえば、単なるテキストを読み込んで、それをHTMLに変換するプログラムなどです。普通ならSSIで処理するようなものを、静的に解決するツールだけでも結構有用です。

noname#33727
質問者

お礼

 ご回答ありがとうございます。  しかし、No.2のahoaho_hiroさんのお礼で書いたのですが、CGIというものが分かりません。ですので、お礼を言っていいのか、補足をした方がいいのか分からない状況です。  「HTMLに変換するプログラム」とありますが、Cプログラムで出てくる「atoi関数」といったものと同種のものですか? それならば自分でも、少し話が分かるのですが…。

回答No.2

C言語を使ってCGIを作りなさい、という意味ではないでしょうか?

参考URL:
http://www2k.biglobe.ne.jp/~motoi/cdecgi.html
noname#33727
質問者

お礼

 ありがとうございます。早速拝見させていただきました。  しかし、まだ最初のページしか見ていないのですが、よく内容が分かりません。  実を言えば、CGIというものがどういったものなのか、と言う時点で分からないんです。  申し訳ありませんが、どなたか簡単に教えてくれませんか?

回答No.1

"ホームページをC言語で作る"とはいかなる意味ですか?

noname#33727
質問者

補足

 申し訳ありません。確かに分かりませんね。  自分のイメージとしてこの「教えて!goo」での投稿、回答のページがいい例だったので、つい「ホームページ」としてしまいました。  つまり、ボタンと入力フォームを主体にしたソフトウェアを作りたい、と言うことです。

関連するQ&A

  • C言語について

     プログラミング言語について質問があります。今、C言語を練習中ですが、C言語に関する本を見ると、大体、(入門者用の教科書しか知らないのですが)ファイル操作とか、構造体とかの説明とかで、終わっています。それで、自分はWindowsでグラフィック操作(例:動画とかを扱う)とかの、プログラムを組みたいのですが、C言語でそれができるのでしょうか。それともC++言語とか、Javaとか他の言語を習得しなければいけないのでしょうか。また、欲張りますが、C言語でグラフィック操作ができるのなら、どんな本を読めばいいのでしょうか。解らなかったので、投稿しました。よろしければ、回答宜しくお願いします。

  • C言語より後に開発されたプログラミング言語は

    C言語を基にして開発されたのでしょうか? C++,C#はもちろんそうですが、Java、PHP、JavaScriptなどもそうなのでしょうか?と言うのも、C言語の関数とこれらのプログラミング言語の関数がかなり似ているところ(共通しているものも)があるからです。また、Excelの関数とも似ているのですが、これらのプログラミング言語と何か関係があるのでしょうか。

  • c言語について

    僕はc言語どころか、プログラミングについて何も知らない初心者です。 ですが、こんな僕でもc言語でプログラミングが書けるようになりたいです。 その為にc言語の教科書(明解c言語)だけは買ったのですが、 そのc言語を書くためのアプリ的なものは何を使えばいいのでしょうか。 また、c言語を学ぶ前に「これを習ってなかったら、c言語は出来ないよ!笑」的なものはありますか? (小学校の九九が出来ないのに、中学の因数分解は出来ないよね!みたいなものです) それを学ぶためのオススメの参考書があれば、そちらも教えて欲しいです! また、オススメの勉強法があれば知りたいです! よろしくお願いします。

  • プログラミング言語C/C++について

    はじめまして 私、東京在住の20代の男です。プログラミング言語C、C++についてご存じの方がいたら教えてください。 この度、ある事情があり、C++を勉強しなければいけなくなりまして、書店で本を買いに行こうと思っているのですが、Cではなくて、いきなりC++の本を買っても大丈夫でしょうか? それとも、まずCから始めた方がいいでしょうか?よろしくお願いします。

  • JavaScriptとC言語の違いについて教えてください

    大学の授業でC言語かJavaScriptのどちらかを選んで学ぶ授業をとるのですが、この二つの言語の違いについて教えていただけないでしょうか? 初めてプログラミングをするのでよければ解りやすく教えていただけるとありがたいです。

  • C言語で作るゲームの参考書を探しています

    C言語でゲームを作ろうと考え、本屋に参考書を探しに行ったのですが、本の種類が多くどれを選んだら良いのか分からないので質問しました。 私自身はプログラミングの経験がないので、初心者にも解り易く書かれている本を教えていただけないでしょうか。 お願いします。

  • JavaScriptとC言語の違いについて教えてください

    大学の授業でC言語かJavaScriptのどちらかを選んで学ぶ授業をとるのですが、この二つの言語の違いについて教えていただけないでしょうか? 初めてプログラミングをするのでよければ解りやすく教えていただけるとありがたいです。

  • C言語かBasic言語

    プログラミングにチャレンジしようとしている者です。 初心者のため、C言語かBasic言語どちらを勉強していけばいいのかわかりません。 また、最終的には自分でアプリケーションを作ってみたい、と思っています。(ブラウザなど) そこで、「これなら初心者でもチャレンジできる!」という言語を教えていただきたいのです。 できればわかりやすい本などもありましたら教えてください。(入門書など) よろしくお願いします。

  • C言語始めようと思っています

    今高校1年で最近ゲームなどを作るにはどうすればよいのだろうと思ったところプログラミングでした。そこで、まずどんなことから始めるべきでしょうか?お勧めの書籍などはありますか?猫でもわかるC言語プログラミングって本を一応購入しようと思っているのですが、どう思いますか?

  • C言語。

    こんにちは。今プログラミングの勉強をしようと持っている中学3年なんですが、難しくて困っています。 PCの基礎知識も微妙なんですがどのようなサイトまたは本がいいでしょうか? 猫でもわかるC言語プログラミングという本は持ってます。 勉強法など中学生でもわかるようなものがありましたらありがたいです。 よろしくお願いします。

専門家に質問してみよう