C言語で作成するCGIの構成

C言語のCGIは、
  1. ブラウザからの情報を取り出す事
  2. ブラウザに送るドキュメントを出力する事
に注意すれば、一般のプログラムと同じです。

当社が提供するCGIプログラムの処理の概略は下図の様になっています。

入力データは、ブラウザとサーバ間の伝送方法によらず、処理から見れば同じ方法で取得できる
様に、入力データの記憶領域に整列します。
受けとるデータの長さは、様々なものが有るので、それらに対応するしくみになっています。
ファイルを受け取った場合(アップロード)は、別の項目に記述します。

DeComposeCommand() 関数は、入力データを全て調べて、入力データ(パラメータ)を
入力データの記憶領域に設定します。
処理では、GetPara()関数によって、CGIに渡されたパラメータを取り出します。
これらの関数は、libcgi.so として、提供します。

出力データ(HTMLドキュメント)は、処理の進行に従って、順次作成されるので、異常発生時に
それまでの出力ドキュメントをクリヤできる様に直接は標準出力に出力せず、一度、スプールファイル
に出力し、CGIの最後で、スプールファイルの内容を標準出力に出力して、ウエブサーバに
引き渡します。