Poprawiłem przykład here, aby go wielokrotnie oglądać plik "modyfikacji". Mój kod to here. W moich testach powiadomienie inotify uruchamia tylko pierwszy plik "zmodyfikowany" (tj. touch
"ed). Wszelkie kolejne modyfikacje pliku nie powodują żadnych powiadomień. stat
pokazuje, że zmienił się czas modyfikacji. Ponadto modyfikowanie kodu w celu usunięcia zegarka i ponowne dodanie za każdym razem, gdy powiadomienie jest uruchamiane (tj. Przeniesienie inotify_add_watch
i inotify_rm_watch
do wnętrza pętli while(1)
w moim sample) nie pomogło rozwiązać tego problemu.inotify nie wypalanie powiadomienia o modyfikacji pliku
Zastanawiam się, czy ktoś tutaj może pomóc w tym, co robię źle. Ponadto, mimo że dodałem zegarek dla IN_ALL_EVENTS
, naprawdę zależy mi tylko na wydarzeniach IN_MODIFY
. Nie jestem pewien, czy to ma jakieś znaczenie.
Czy ten przypadek nie działa? Czy powinienem zmienić moje podejście do oglądania katalogu? Proszę o poradę.
TIA.
Edycja 1: Jak odnotowano w dokumencie themel, obsługa i
wymagała naprawy. Jednak nawet stała wersja nie uruchamia powiadomień dla kolejnych "systemów" plików. Dodanie zegarka do katalogu w przeciwieństwie do pliku wykazuje podobne niedeterministyczne zachowanie.
Edycja 2: Chciałbym uzyskać ten asio + inotify example w oparciu o this answer do pracy. Niestety ten przykład w ogóle mi nie działa. Każda pomoc byłaby bardzo cenna. TIA.
Chociaż zastanawiam się, dlaczego 'touch' nie powoduje powiadomienia' IN_MODIFY'. 'stat' sugeruje, że' touch' zmodyfikował czas modyfikacji pliku. –