0

我有监控不断变化的日志文件的代码。代码当前运行良好,但是当文件被移动或删除时,代码仍在尝试使用文件指针进行读取。

fr = fopen (filename, "rt");
while (1) {
  if(fgets(buffer, 500, fr) != NULL) {
       //do something  
  } else {
    sleep(1); //wait for data to come
  }
}

如何检测文件是否已被移动/删除以便退出?

4

1 回答 1

1

您可能希望尝试捕获以克服您的问题。一旦文件被移动(我猜这取决于操作系统,因为某些操作系统不允许它,因为文件被另一个进程打开)你应该得到一个异常,一旦你抓住它,你就可以决定做什么。

(我需要对其进行测试,但我认为您的情况应该发生什么)

于 2015-09-01T07:18:32.337 回答