0

私は 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;

}

どんな助けでも大歓迎です。

4

0 に答える 0