首页 > 解决方案 > C++:当我使用文件描述符从日志文件中读取时,识别日志文件何时被移动/重命名/删除

问题描述

当 JVM 创建启用了日志轮换的日志文件时,它会创建一个名称如下的文件:

logfile.0.current

在达到文件大小阈值并旋转到一个新文件后,它将文件移动到logfile.0并创建一个新文件:logfile.1.current

我有一个程序从这些日志文件中读取并对其进行一些处理,然后将内容写入单个文件。

从文件中读取的代码与此类似:

ssize_t numRead = read(_fd, buffer, BUF_SIZE - 1);
// I want to know how to handle the situation if file gets deleted here

char * msg = new char[numRead + 1];
strncpy(msg, buffer, numRead);
msg[numRead] = '\0';
// write the msg to a different file.

但我正在努力处理logfile.0.current转移到logfile.0.

标签: c++filefile-descriptorlogfile

解决方案


推荐阅读