В C ++ я хочу сделать цикл, который постоянно проверяет размер файла и что-то делает, если размер изменяется - PullRequest
3 голосов
/ 05 марта 2011

Я пытаюсь создать программу, которая будет постоянно проверять размер файла и, если размер файла изменяется, заставить программу что-то делать.Этот файл является HTML-файлом, поэтому другим методом может быть постоянная проверка его источника и, если количество символов меняется, что-то сделать.

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

edit: операционная система Windows 7 64-bit

Ответы [ 2 ]

5 голосов
/ 05 марта 2011

Для Windows вы можете использовать API уведомления об изменении файла и заставить ОС вызывать вас при изменении элемента, который вы смотрите. Пока это не произойдет, ваша нить может спать.

Наличие вызова ОС гораздо предпочтительнее, чем настройка бесконечного цикла опроса. Если вы запустите свой цикл опроса без каких-либо снов, вы будете привязывать процессор к 100% -ной загрузке, заставите вентиляторы наматываться, чтобы избавиться от лишнего тепла, и разряжать аккумулятор ноутбука за 5 минут. ;>

0 голосов
/ 05 марта 2011

Я использую событие lib и забываю цикл.(Это также не зависит от платформы).http://monkey.org/~provos/libevent/

...