前へ << 掲示板を作ろう (2) | GET と POST >> 次へ |
どんな環境でも、最初に作るプログラムは hello world です。 いきなり掲示板を作ろう、なんてのは愚の骨頂。バカのすることです。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 を使用禁止にしていない限り、 コンパイルは成功するはずです。
- FreeBSD・NetBSD・OpenBSD・Linux などのフリー UNIX 系 OS
- Solaris (SunOS) などの商用 UNIX
一方、後者の商用 UNIX ですが、当ページ管理人は Solaris しか 使ったことがないので、Solaris に限定して説明します。 Solaris には Sun Microsystems が作成した独自のコンパイラがあります。 しかし、これは売り物ですので、金を払って買わないといけません。 想像ですが、大抵のプロバイダは売り物のコンパイラを買わないでしょう。 しかし gcc は Solaris にも対応していますので、もしかしたら gcc が使えるかもしれません。
なお、各ユーザの権限で gcc などのコンパイラをインストールするのは 不可能ではありませんが、そんなに簡単ではありませんし、 ディスクスペースも喰いますので、お勧めはしません。基本的に、プロバイダの説明で「コンパイラが使えます」と書いてない 限り、C 言語で CGI プログラムを書くのは無理だと思った方がよいでしょう。
C 言語の場合は、文法ミスはコンパイル時に発見されます。 コンパイラの出すメッセージは、warning とエラーがあります。 コンパイル時にエラーが発生しているのか、ただの warning なのかをよく見なければいけません。
前へ << 掲示板を作ろう (2) | GET と POST >> 次へ |