我正在阅读某个安装程序进程不断写入的日志文件。但是,在某些情况下,我会随机崩溃,原因如下:
Crash reason: EXCEPTION_ACCESS_VIOLATION_READ
我对此有几个问题-
1:如果您看到以下代码,我正在尝试处理阅读时发生的任何异常。那么为什么 EXCEPTION_ACCESS_VIOLATION_READ 没有被捕获并且程序崩溃了。
2:看起来它正在发生,因为安装程序在我读取文件的同时写入文件。wxTextFile 不允许我打开文件的模式。那么,如果我使用一些 C 函数并以 READ_ONLY 模式打开文件,还会发生这种崩溃吗?
以下是我的代码:
wxTextFile file( wxT("C:\\logfile.log") );
WriteLog(wxT("Will start monitoring log file."));
while(true)
{
if(file.Exists())
{
try
{
if(file.Open())
{
wxString str = file.GetLastLine();
WriteLog(wxT("Got::")+str);
file.Close();
}
}
catch(...)
{
WriteLog(wxT("CRASH: something went wrong::MonitorLogFile()"));
}
}
//Exit if needed
Sleep(1500);
}