Есть ли библиотека с функцией, которая блокирует вызывающего абонента до тех пор, пока определенный файл не будет существовать и/или не будет удален? (Очень желательно в стандартных библиотеках C++ или подталкивание.)Как подождать, пока файл будет существовать (и будет выпущен)?
фон
Я C++ новичок писать однопоточный приложение, которое должно
- Выполнение некоторых тяжелых вычислений на запуске.
- Подождите, пока не будет определен определенный входной файл (и будет удален).
- Если файл содержит определенную инструкцию, удалите его и выйдите.
- (Else) обрабатывает его, удаляет и создает выходной файл.
- Повторите с шага 2.
Причина, по которой шаги 2,3 и 5 (вместо того, чтобы просто шаг 1 & 4 и вызова приложения по требованию) является то, что шаг 1 включает в себя некоторую тяжелую обработку.
Я не хочу тратить много времени на ожидание процесса во время шага 2, но я также не хочу вводить ненужную задержку путем опроса для существования файла нечасто.
Каков правильный подход? (Предпочтительно межплатформенная: Windows, Linux, OSX.)
Только ради этого: http://stackoverflow.com/questions/10164341/cross-platform-c-filesystem-watcher - не повышать или стандарт librar y (который еще ничего не имеет в файловых системах), но может оказаться полезным. – Rostislav
Re * Подождите, пока не будет определен определенный входной файл (и его можно удалить). * Первая часть проста. Попробуйте открыть файл. Подождите немного и повторите попытку, если вы получите сообщение об ошибке. В скобках нет ничего, кроме легкого. Что это значит, особенно в межплатформенном смысле? –