Ошибка файла fopen: часто пишите файл - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть получающая нить, когда приходят сообщения от разных src, нить открывает файл и обновляет его содержимым сообщения. Теперь я столкнулся с проблемой, мой журнал получает сообщения об ошибках «open file error», как показано ниже:

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
     } }

Есть ли объяснение, почему поток одновременно открывает файл? Какой сенарио может вызвать эту проблему. Я думаю, что это должно иметь разницу во времени, по крайней мере.

...