CGI プログラムのはじめの一歩

前へ << 掲示板を作ろう (2) GET と POST >> 次へ

hello world

どんな環境でも、最初に作るプログラムは hello world です。 いきなり掲示板を作ろう、なんてのは愚の骨頂。バカのすることです。

hello-world.c

    1: #include <stdio.h>
    2: 
    3: main(){
    4:     printf("Content-type: text/html\n\n");
    5:     printf("<html><body>\n");
    6:     printf("Hello world.\n");
    7:     printf("</body></html>\n");
    8: }
perl や ruby では、スクリプトを書いてサーバに置いておくだけで 実行できますが、C 言語はコンパイルという変換作業が必要になります。

普通は、サーバに telnet などでログインしてコンパイル作業を行います。 コンパイルを行うプログラムをコンパイラといいます。 まず hello-world.c をサーバに FTP などで転送し、 telnet でログインします。そして

% gcc -o hello-world.cgi hello-world.c
何かエラーメッセージが出たら、コンパイルに失敗したということです。 何もメッセージが出ない場合は、カレントディレクトリに hello-world.cgi という実行ファイルができているはずです。
% ./hello-world.cgi
Content-type: text/html

<html><body>
Hello world.
</body></html>
となれば成功です。

コンパイル作業

まず、telnet などでプロバイダのサーバにログインする必要があります。 これができない場合は、残念ながら C 言語を使うのはあきらめて下さい。

CGI プログラムを C 言語で書くためには、コンパイルする必要があります。 コンパイルするにはコンパイラというプログラムが必要です。 コンパイラをインストールしていない環境、あるいは コンパイラは標準で付いてくるが あえて使えないようにしてある環境も あります。

先の例では gcc というコンパイラを使いましたが、 Command not found などというエラーが出た場合は

% cc -o hello-world.cgi hello-world.c
としてやってみて下さい。

UNIX 系 OS は大別して

があります。前者の フリー UNIX には gcc というフリーのコンパイラが付属されています。 システム管理者が gcc を使用禁止にしていない限り、 コンパイルは成功するはずです。

一方、後者の商用 UNIX ですが、当ページ管理人は Solaris しか 使ったことがないので、Solaris に限定して説明します。 Solaris には Sun Microsystems が作成した独自のコンパイラがあります。 しかし、これは売り物ですので、金を払って買わないといけません。 想像ですが、大抵のプロバイダは売り物のコンパイラを買わないでしょう。 しかし gcc は Solaris にも対応していますので、もしかしたら gcc が使えるかもしれません。

なお、各ユーザの権限で gcc などのコンパイラをインストールするのは 不可能ではありませんが、そんなに簡単ではありませんし、 ディスクスペースも喰いますので、お勧めはしません。
基本的に、プロバイダの説明で「コンパイラが使えます」と書いてない 限り、C 言語で CGI プログラムを書くのは無理だと思った方がよいでしょう。

デバッグ

C 言語の場合は、文法ミスはコンパイル時に発見されます。 コンパイラの出すメッセージは、warning とエラーがあります。 コンパイル時にエラーが発生しているのか、ただの warning なのかをよく見なければいけません。

前へ << 掲示板を作ろう (2) GET と POST >> 次へ