fopen文件错误:经常写文件

时间:2018-04-27 05:50:03

标签: c++ file fopen

我有一个接收线程,当来自不同src的消息到来时,线程将打开一个文件,并用消息内容更新它。现在我遇到了一个问题,我的日志获取错误消息“打开文件错误”如下:

  

2018/04/26 10:28:44.222 I Thread2821收到消息:src = 5

     

2018/04/26 10:28:44.223 I Thread2821收到消息:src = 0

     

2018/04/26 10:28:44.482 I Thread2821收到消息:src = 1

     

2018/04/26 10:28:44.482 E Thread2821错误打开**文件:C:\ writting.txt

     

2018/04/26 10:28:44.482 I Thread2821收到消息:src = 2

     

2018/04/26 10:28:44.482 E Thread2821错误打开**文件:C:\ writting.txt

     

2018/04/26 10:28:44.482 I Thread2821收到消息:src = 3

     

2018/04/26 10:28:44.482 E Thread2821错误打开**文件:C:\ writting.txt

代码结构很旧,它没有使用消息队列。从日志中,来自src1 / 2/3的消息,同时打开文件。

线程代码:

Receiver::Run(){
    if( Msg.ReadStream(buffer, nLen))
     {
        pMsg = messageFactory().CreateMessage(Msg);
        ...
        parentThread->ProcessMessage(pMsg); // update file here
     } }

有没有解释为什么线程同时打开文件?什么Senario可能会导致这个问题。我认为它至少应该有时差。

0 个答案:

没有答案