在我的cpp文件中,我将一些调试消息打印到std :: cout标准输出流。当我使用此文件并使用Apache服务器运行可执行文件时。调试消息将在何处打印。我没有在/ var / lib / httpd / error_log中看到它们。
提前致谢。
答案 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/html
和Content-type: text/plain
是正确的,但我之前说他们需要换行。我错了,他们需要两个新线
如果这是您第一次看到此帖子,请不要担心。