Мне нужно удалить файл (скажем, он называется <file.txt>
), когда другой процесс (это из другой программы, которую я вызываю с помощью system("anotherProgram <file.txt>")
в моем коде на C ++) завершает его использование.
Моя программа генерирует <file.txt>
, передает его внешнему приложению. Это приложение записывает свои шаги в файл журнала, и владелец приложения сказал, что этот файл не нужен приложению после того, как какое-то сообщение (скажем, 'aaa'
) напечатано в файле журнала.
Я полагаю, что внешнее приложение просто анализирует это <file.txt>
и после завершения выводит сообщение 'aaa'
в журнал. Итак, я верю, что после этого будет безопасно удалить <file.txt>
из моего кода.
Итак, в моем коде я проверяю файл журнала, и когда я вижу сообщение 'aaa'
, я засыпаю свой процесс на 1000 мс, а затем удаляю файл.
Но в некоторых случаях я все еще получаю ошибки от этого внешнего приложения, что оно не может найти файл <file.txt>
, поэтому я предполагаю, что даже после того, как сообщение 'aaa'
напечатано в журнале, приложение все еще пытается использовать <file.txt>
.
Я хотел бы знать, если что-то я делаю не так.
PS: Если бы я спал дольше (скажем, 10000 мс), я бы не столкнулся с этой проблемой.