在我的cpp文件中,我將一些調試消息打印到std :: cout標準輸出流。當我使用此文件並使用Apache服務器運行可執行文件時。調試消息的打印位置在哪裏?我沒有看到它們打印在/ var/lib/httpd/error_log中。Apache標準輸出流
在此先感謝。
在我的cpp文件中,我將一些調試消息打印到std :: cout標準輸出流。當我使用此文件並使用Apache服務器運行可執行文件時。調試消息的打印位置在哪裏?我沒有看到它們打印在/ var/lib/httpd/error_log中。Apache標準輸出流
在此先感謝。
唯一的原因,你應該使用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
是正確的,但我此前曾表示,他們需要一個新的生產線。我錯了,他們需要兩條新線
如果這是您第一次看到這篇文章,比不擔心它。
我猜想標準輸出可以在運行程序時從perl訪問,或者很可能是perl或者apache web服務器將輸出重定向到/ dev/null或其他東西。我會說編輯這個問題,說明你正在使用Perl,從你的問題,我認爲你一般在C++中遇到麻煩。這裏的問題是你的perl代碼,而不是服務器,而不是可執行文件。 – 2013-03-05 21:08:58
「使用Apache服務器運行可執行文件」,您將可執行文件作爲CGI程序運行? – kay 2013-03-04 22:31:40
您可能想看看這個項目的[Cgicc](http://www.gnu.org/software/cgicc/)庫。另外,作爲一個快速測試,您可以嘗試將C++代碼中的消息寫入文件(它具有所需的權限),只是爲了查看它是否正在執行。 – 2013-03-04 23:23:22
@MihaiTodor我試圖輸出到一個文件。它以這種方式工作。我正在使用我的Cpp可執行文件形式在Apache中運行的腳本。 – PMat 2013-03-05 15:46:23