
#include<stdio.h>
#include<unistd.h>
#include<sys/wait.h>
#include<netinet/in.h>
#include<string.h>
#include<stdlib.h>
#include<pthread.h>

#include"sitar.h"
#include"sitar_com.h"
#include<almemsys/almemsys.h>
#include"jpreturn.h"
#include<file_comp/file_comp.h>

extern global_data_t gd;

extern pthread_mutex_t file4_mutex;


// クローン実行用のスレッド関数
int sitar_cron(void)
{
FILE * fp;
int bstat, stat;
bstat = 0;
stat = 0;

for(;;){

   #ifdef CRON_BUG
   printf("CRON_BUG: sitar_cron(): ループの開始またはループの先頭に戻りました \n");
   #endif

   // 一次リストファイルから二次リストファイルにコピー
   pthread_mutex_lock(&file4_mutex);
   gd.fi.cronlist_filestat = stat_check(gd.fi.cronlist_filestat, gd.fi.cronlist_filename, &bstat);
   if(0 > bstat){
      #ifdef CRON_BUG
      printf("CRON_BUG: sitar_cron(): 編集があったので一次ファイルから二次ファイルにコピーします \n");
      #endif
      file_copy(gd.fi.cronlist_filename, gd.fi.cronlist_filename_2);
      }
   pthread_mutex_unlock(&file4_mutex);

   if((fp = fopen(gd.fi.cronlist_filename_2, "r+"))!=NULL){
      #ifdef CRON_BUG
      printf("CRON_BUG: sitar_cron(): 二次ファイルiを開きました。 \n");
      #endif

      while(1){
         gd.cd.swap = safe_fpcat(fp, gd.cd.swap, &stat, BUF_MAX);
         if(stat < 0){
            stat = 0;
            break;
            }


printf("stat %d <<%s>>\n", stat, gd.cd.swap);



         } // while()


      #ifdef CRON_BUG
      printf("CRON_BUG: sitar_cron(): 二次ファイルを閉じました。 \n");
      #endif
      fclose( fp );
      } // fopen()


   #ifdef CRON_BUG
   printf("CRON_BUG: sitar_cron(): cronは %d 秒のスリープに入ります \n", gd.bf.bat2_int);
   #endif
   sleep(gd.bf.bat2_int);
   } // for(;;)

// Not reachablle (ここに到達することはありません)

return 0;
}









