я запрещаю работать одновременно нескольким программам с исходным файлом. Но если программа крашится, то файл остаётся и при последующем запуске никому нельзя с ним работать, пока вручную не будет удалён lock-файл.
Была идея в файл записывать временные метки каждые n-секунд через std::chrono::system_clock и при очередном запуске проверять, а какая разница между текущим временем в системе и записанным временем в файл. Если больше n-секунд => разрешаем работать. Есть варианты поадекватнее?
Пиши pid
а как еще можно понять?
При повторном открытии можешь показывать диалог вида "Удалить lock-файл?", как в vim'е сделано
Ну вообще, да - идентификатора процесса и времени записи должно хватить. Первая проверка по идентификатору, вторая - по времени
Обсуждают сегодня