3

私のcppファイルでは、いくつかのデバッグメッセージをstd::cout標準出力ストリームに出力しています。このファイルを使用し、Apacheサーバーを使用して実行可能ファイルを実行する場合。デバッグメッセージはどこに出力されますか。/ var / lib / httpd/error_logに出力されていません。

前もって感謝します。

4

1 に答える 1

3

C++ プログラムを実行するために Apache Web サーバーを使用する必要がある唯一の理由は、CGI スクリプトを作成する場合です。

確認してください: http://en.wikipedia.org/wiki/Common_Gateway_Interface


ここでのプロセスは、Web サーバーである Apache がプログラムを実行し、出力 (std::cout) をページ ソースとして使用することです。

ページ ソースは、html またはプレーン テキストのいずれかです。唯一の問題は、サーバーが認識していないことです。そのため、出力の最初にちょっとしたヒントをサーバーに提供します。ヘッダーといいます。

html を出力する場合は、以下を印刷する必要があります。

コンテンツタイプ: text/html

2 つの改行が続きます。

または、Web サーバーにデータをプレーンテキストとして解釈させたい場合は、最初に印刷する必要があります。

コンテンツ タイプ: テキスト/プレーン

また、 2 つの改行が続きます。


たとえば、動作するはずの 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は正しかったのですが、以前、新しい行が必要だと言いました。私は間違っていました.2つの新しい行が必要です.

この投稿を初めて見る場合でも、心配する必要はありません。

于 2013-03-04T22:44:07.643 に答える