cgiccは、最近私が気になっ
ているライブラリの1つです。
まぁ、なんてことない、Perlにおけ るCGI.pmのC++版 みたいなやつだけど、ちょっと使ってみようかなという気になったので、備忘録を兼ね て、掲載しておこうかと思います。
このcgiccは実はGNUのプロダクトのひとつで、ソースコードが CVSで取ってこれたり、MLが充実してるっぽかったりするので、いい感じで す。
ftp.gnu.org
からtarballを取ってくるもよし、CVSから取ってくるもよし。お好きな方法で手に入れたら、さくっと、 ./configure
&
make install
しちゃいましょう。(バージョン3.2.1+GCC2.xではCgiEnvironment.cppでstd::isspace
が
見つからないという問題があるかもしれま
せんが、std::
を取ればビルドできるようになるはずです。)
それでは、いつものアレ(ぉをサンプルとして作ってみましょ う。
#include <iostream>
#include <exception>
#include <cgicc/Cgicc.h>
#include <cgicc/HTTPHTMLHeader.h>
#include <cgicc/HTMLClasses.h>
int main(int argc, char** argv) {
using namespace cgicc;
try {
Cgicc cgi;
// ヘッダを出力
std::cout << HTTPHTMLHeader() << std::endl;
// いつもの
std::cout << html() << body() << std::endl;
std::cout << p("Hello, world!") << std::endl;
std::cout << body() << html() << std::endl;
} catch (std::exception& e) {
// エラー
}
return 0;
}
上のコードをコンパイル&リンクしたものが cgicc_1.cgi となります。