Tôi đã chỉnh sửa ví dụ here để làm cho liên tục xem tệp để 'sửa đổi'. Mã của tôi là here. Trong các thử nghiệm của tôi, thông báo inotify chỉ kích hoạt lần đầu tiên tệp được 'sửa đổi' (tức là touch
'ed). Mọi sửa đổi tiếp theo đối với tệp sẽ không gây ra bất kỳ thông báo nào để kích hoạt. stat
cho thấy thời gian 'Sửa đổi' đã thay đổi. Ngoài ra, sửa đổi mã để xóa đồng hồ và thêm lại mỗi khi có thông báo cháy (tức là di chuyển inotify_add_watch
và inotify_rm_watch
để nằm trong vòng while(1)
trong số sample) của tôi không giúp giải quyết vấn đề này.inotify không kích hoạt thông báo về sửa đổi tệp
Tôi đã tự hỏi nếu có ai ở đây có thể giúp đỡ những gì tôi có thể làm sai. Ngoài ra, mặc dù tôi đã thêm đồng hồ cho IN_ALL_EVENTS
, tôi thực sự chỉ quan tâm đến các sự kiện IN_MODIFY
. Không chắc chắn nếu điều đó làm cho bất kỳ sự khác biệt.
Ngoài ra, trường hợp sử dụng này có hoạt động không? Tôi có nên thay đổi cách tiếp cận của mình để xem thư mục thay thế không? Làm ơn cho lời khuyên.
TIA.
Chỉnh sửa 1: Như được ghi chú bởi themel, việc xử lý i
cần một số sửa chữa. Tuy nhiên ngay cả phiên bản cố định cũng không kích hoạt các thông báo cho các sự kiện hệ thống tập tin tiếp theo. Ngoài ra, việc thêm một chiếc đồng hồ trên thư mục trái ngược với tập tin sẽ thể hiện hành vi không xác định tương tự.
Chỉnh sửa 2: Tôi muốn nhận được điều này asio + inotify example dựa trên this answer để hoạt động. Thật không may là ví dụ đã không được làm việc cho tôi cả. Bất kì sự trợ giúp nào đều được đánh giá cao. TIA.
Mặc dù tôi tự hỏi tại sao 'touch' không gây ra thông báo' IN_MODIFY'. 'stat' dường như gợi ý' touch' đã sửa đổi thời gian 'Sửa đổi' của tệp. –