私は C での CGI プログラミングの初心者です。乱数を生成して Web ページに表示し続けようとしていました。C でプログラムをコンパイルして作成し、fedora コア /var/www/cgi-bin/rand_mumber.cgi のパスに配置しました。ローカル ホスト経由でこの cgi ページにアクセスでき、結果は問題ありません。しかし、ネットワーク上の別のマシンから Web ページにアクセスしようとすると、問題が発生します。Web ページはデータをロードし続け、最終的にタイムアウトします。私の分析によると、Web ブラウザはプログラムが終了するまでページをアップロードしないということです。以下の例では、プログラムは決して終了しません。また、この種の 1 つの例は、Google 検索後の現地時間です。現地時間は、独自に更新し続けるわけではありません。更新をクリックする必要があります。しかし、私の要件は、完了または更新のクリックを待たずに、ページを常に更新し続ける必要があるということです。乱数が生成されると、Web ページに表示され、別の乱数を再度読み取る必要があります。このプロセスは、Web ページがプログラムの終了を待つのではなく、繰り返し続ける必要があります。
以下は、私がコンパイルして名前を rand.cgi に変更したプログラムです。
Webページを更新して表示し続ける方法を教えてください。乱数が生成されると、常に Web ページを更新し続ける必要があります。終わらないプログラムです。
#include"stdio.h"
#include"pthread.h"
#include"unistd.h"
pthread_t tid;
void *print_series_forever()
{
int n;
int k = 0;
while( 1 )
{
n = rand()%100 + 1;
printf("%d",n);
k++;
if ( k == 110 )
{
printf("\n"); /** Enter next line **/
k = 0;
}
usleep(100);
}
}
int main(int argc, char **argv)
{
int err;
err = pthread_create(&tid,NULL,&print_series_forever,NULL);
pthread_join(tid,NULL);
sleep(2);
return 0;
}
どんな助けでも大歓迎です。