c++ - 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# - Syncfusion WPF DoubleTextBox 错误格式化与 Min 和 MaxValue 以及 MinValidation 和 MaxValidation
- c# - xUnit Test 中的 ClassData 是否接受参数?C#
- google-cloud-platform - 通过 Cloud Identity-Aware 代理连接失败
- android - 当我的服务发生崩溃时,华为崩溃服务无法正常工作
- sql - 如何通过oracle regexp_substr() 提取“/”字符之前的部分
- python - 将向量 (1 x N) 乘以张量 (N x M x M)
- javascript - 获取每一行文本元素
- xml - 使用各种命名空间时如何在 XSL 中获取 XML 内容
- drupal - 使用 Drupal 使用 rest api
- c# - Xunit 中的模拟 Dll