两个程序同时操作一个文件的读和写。一个程序持续写入数据到文件中,另一个程序持续的读文件。处理过程中不能判断文件是否完整,即读文件操作可能需要等待写文件操作。
程序读文件的处理过程中,按行读取,计算每一行的偏移量。读取一行时,设置偏移量,在读取。
读文件操作执行到文件末尾时,关闭文件,然后重新打开文件,判断文件流状态是否可用。
当文件有60秒时长没有写入文件时,就退出读写操作。
ifstream m_ifHandler;
string m_runFilePath;
int m_curLen;
bool CFileOpera::openFile(string file)
{
bool res = false;
m_ifHandler.open(file);
if (m_ifHandler.is_open())
{
res = true;
}
return res;
}
void CFileOpera::closeFile()
{
m_ifHandler.close();
}
bool CFileOpera::getNewFile(string &file)
{
m_runFilePath = file;
}
bool CFileOpera::getLine(string &line)
{
bool res = false;
int linelen;
line.clear();
m_ifHandler.seekg(m_curLen, ios::beg);
if (m_ifHandler.good())
{
if (getline(m_ifHandler, line))
{
res = true;
linelen = line.length()&