|
分類:[C/C++]
下記のプログラムに、fork()を用いて、子プロセスでファイルの更新を監視するようにしたいのですが、分かりません。分かるかたはソースを教えてください。
#include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h>
int main(int argc,char *argv[]){ struct stat fs; long old_mtime,new_mtime; if(argc != 2){ puts("ファイル名を指定してください。"); exit(EXIT_FAILURE); } if (stat(argv[1],&fs) < 0){ printf("%s の情報が読めません!\n",argv[1]); exit(EXIT_FAILURE); } old_mtime = new_mtime =(long)fs.st_mtime; int timeout =360; int count = 0; while(old_mtime == new_mtime && count < timeout){ usleep(500000); if(stat(argv[1],&fs) < 0){ printf("%s が更新されました!\n",argv[1]); exit(EXIT_FAILURE); } new_mtime = (long)fs.st_mtime; count++; }
if (count == timeout)printf("タイムアウトしました!!\n"); else printf("%s が更新されました!\n",argv[1]); return EXIT_SUCCESS; }
|