gcc バージョン 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) を使用して C++ で cgi プログラミングを試していますが、商用の apache サーバーで実行しようとすると奇妙なエラーが発生しました。
コンパイルが完了すると、Apache はこれを実行します。
#include <cstdio>
// no <iostream>
int main(int c, char **argv)
{
printf("Content-Type: text/html; charset=ISO-8859-1\n\n");
printf("Hello printf\n\n");
return 0;
}
ただし、 iostreamが含まれている場合、サーバーは 500 エラーを返します。
#include <cstdio>
#include <iostream> //this will cause a 500 error
int main(int c, char **argv)
{
printf("Content-Type: text/html; charset=ISO-8859-1\n\n");
printf("Hello printf\n\n");
return 0;
}
その 2 番目のプログラムを iostream でコンパイルすると、プログラムはコマンド ラインから完全に実行されますが、コードをアップロードすると、Apache が 500 エラーを返し始めます。
完全を期すために、cstdio だけを使用して、C と Free Pascal の両方、および C++ で同様のプログラムをコンパイルしました。問題はありません...
問題は、iostream を含めた場合にのみ発生します。
注: パーミッションを変更することを忘れていませんでした。
注: 「Content-Type: text/html; charset=ISO-8859-1\n\n」を含めました
私のサーバーは、iostream でコンパイルされたものを受け入れないようです。
cstdioでは発生しないのにiostreamでこのエラーが発生するのはなぜですか? また、どのように修正すればよいですか?