Apache标准输出流

时间:2013-03-04 22:29:33

标签: c++ linux apache

在我的cpp文件中,我将一些调试消息打印到std :: cout标准输出流。当我使用此文件并使用Apache服务器运行可执行文件时。调试消息将在何处打印。我没有在/ var / lib / httpd / error_log中看到它们。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您应该使用Apache Web服务器运行C ++程序的唯一原因是您制作CGI脚本

检查出来:http://en.wikipedia.org/wiki/Common_Gateway_Interface


这里的过程是Apache,Web服务器,运行您的程序并使用输出(std :: cout)作为页面源。

页面源可以是html或纯文本。唯一的问题是服务器不知道,所以你在输出的开头给它一点提示。它被称为标题。

如果输出html,则必须打印:

  

内容类型:text / html

后跟两个换行符。

或者如果您希望Web服务器将数据解释为纯文本,则必须先打印

  

内容类型:text / plain

后面还有两个换行符。


例如,应该工作的C ++程序看起来像这样:

#include <iostream>

int main()
{
  //output header, then one newline, then another, paired with a flush.
  std::cout << "Content-type: text/plain\n" << std::endl;
  //now your output
  //calculation...
  std::cout << "Hello World" << std::endl;
  return 0;
}

可以使用一些预设的环境变量查询任何Web服务器参数。阅读我链接的维基百科文章。


修改

我道歉,Content-type: text/htmlContent-type: text/plain是正确的,但我之前说他们需要换行。我错了,他们需要两个新线

如果这是您第一次看到此帖子,请不要担心。