使用fastcgi++编写fastcgi应用初探(一)

fastcgi++作为一个完全C++编写的fastcgi应用开发包,封装了很多功能,比如参数提取,session,mysql数据库连接管理等最大限度的简化cgi编程。
编写一个简单的helloworld的fastcgi应用。

  1. #include <fstream>
  2. #include <boost/date_time/posix_time/posix_time.hpp>
  3.  
  4. #include <fastcgi++/request.hpp>
  5. #include <fastcgi++/manager.hpp>
  6.  
  7. void error_log(const char* msg)
  8. {
  9.         using namespace std;
  10.         using namespace boost;
  11.         static ofstream error;
  12.         if(!error.is_open())
  13.         {
  14.                 error.open("/tmp/errlog", ios_base::out | ios_base::app);
  15.                 error.imbue(locale(error.getloc(), new posix_time::time_facet()));
  16.         }
  17.  
  18.         error << '[' << posix_time::second_clock::local_time() << "] " << msg << endl;
  19. }
  20.  
  21. class Helloworld: public Fastcgipp::Request<char> {
  22. public:
  23.         bool response()
  24.         {
  25.                 out << "<html><body>";
  26.                 out << "Hello world!";
  27.                 out << "</body></html>";
  28.                 return true;
  29.         }  
  30. }
  31. main(){
  32.         try
  33.         {
  34.                 Fastcgipp::Manager<Helloworld> fcgi;
  35.                 fcgi.handler();
  36.         }
  37.         catch(std::exception& e)
  38.         {
  39.                 error_log(e.what());
  40.         }
  41. }

可以看到基本的只要从 Fastcgipp::Request 派生一个类,实现其中的 bool response() 函数就可以完成一个fastcgi 应用。

Popularity: 8% [?]

Related

Comments

Comments are closed.