检查While循环中的文件状态
Check Status Of A File In While Loop
我的代码监视一个不断变化的日志文件。代码当前运行良好,但当文件被移动或删除时,代码仍试图使用文件指针读取。
fr = fopen (filename, "rt");
while (1) {
if(fgets(buffer, 500, fr) != NULL) {
//do something
} else {
sleep(1); //wait for data to come
}
}
如何检测文件是否被移动/删除以便退出?
您可能想要尝试捕获来克服您的问题。一旦文件被移动(我猜这是操作系统相关的,因为一些操作系统不允许它,因为文件是由另一个进程打开的),你应该得到一个异常,一旦你抓住它,你可以决定怎么做。
(我需要测试它,但我认为在你的情况下应该发生什么)
相关文章:
- 如何从日志文件中抓取状态代码?(在 C++ 中)
- 如何在文件仍处于打开状态时删除文本文件的内容(无需重新打开文件)?
- 如何在 QT 中显示文件加载状态
- 严重性代码说明项目文件行抑制状态错误 C2676 二进制">>":"std::ifstream"
- collect2:错误:ld 在制作带有代码块的 .so 文件(64 位版本)时返回 1 个退出状态
- 生成文件gtkmm;collect2.exe:错误:ld返回1退出状态
- 如何从 .IV 文件为渲染的几何体应用状态集
- 将QCheckBox的状态保存在文件中,并在程序重新启动时加载状态
- 文件打开/关闭状态引发意外异常
- 文件打开问题,删除文件后.在VC++中fopen状态失败
- 是否可以在pdf文件中重新初始化图形状态
- 跨所有操作系统应用文件状态(Stat的结构类型)
- 对Linux和Windows的多个进程的并发状态文件操作超出了我们的控制
- 在c++中,检查给定用户配置文件是否处于活动状态或已删除的最佳方法是什么?
- 在c++中重置ifstream对象的文件结束状态
- 检查While循环中的文件状态
- 消息: [unixODBC][驱动程序管理器]无法打开库"MySQL ODBC 5.1 驱动程序": 找不到文件nSQL状态: 01000
- 从python启动多个二进制文件并监视它们的状态
- 在vim的状态行显示文件扩展名
- Git 状态显示奇怪的未跟踪"path_of_filer"文件,如何通过命令行删除