Ich versuche, iNotify in Linux Rhel5, Kernel 2.6.18, Glibc 2.5-18 zu verwenden. Ich habe das Ereignis nicht als einen Schuss definiert, aber aus irgendeinem Grund verhält es sich so, als hätte ich es getan. Der Effekt ist, dass ich nach jedem Ereignis eine Uhr neu hinzufügen muss. Hat jemand jemals iNotify benutzt? Ein weiteres Problem besteht darin, dass die im Ereignisobjekt zurückgegebene Maske nur ein Flag enthält: IN_ONE_SHOT.Linux iNotify One Shot und Event-Maske Problem
Antwort
Schreiben Sie das kleinste Beispiel und testen Sie es. Wenn es das Verhalten zeigt, über das du sprichst, dann füge es deiner Frage hinzu. Wenn es sich normal verhält, fügen Sie etwas mehr Code hinzu und testen Sie es erneut. Wiederholen Sie den Vorgang, bis Sie den Fehler reproduziert haben oder Ihr Code funktioniert. Oft finde ich, dass mir das Bauen eines Spielzeugprogramms genau das sagt, was ich falsch mache, was ich in einem größeren Programm nicht sehen konnte.
Es ist wahrscheinlich, dass inotify die Uhr implizit löscht, weil die Datei gelöscht wird. Auf das Verhalten wird subtil mit the manual page verwiesen (siehe Abschnitt zum Ereignis IN_IGNORED). Sie können überprüfen, ob dies der Fall ist, indem Sie überprüfen, ob das Flag IN_IGNORED in dem inotify_event gesetzt ist, der von Ihrem Aufruf an read
ausgefüllt wurde.
Siehe auch inotify delete_self when modifying and saving a file für warum die Datei gelöscht werden kann ohne Ihr Wissen oder Ihre Aktion während Ihrer Meinung nach nur eine Änderung ist.
- 1. One-Shot-Timer
- 2. linux, inotify - wie abonnieren?
- 3. Regex: Get Dateiname ohne Erweiterung in One Shot?
- 4. Trigger inotify Ereignis über NFS unter Linux?
- 5. inotify C-Header
- 6. Kosten von kontinuierlichen Replikationen im Vergleich zu One-Shot-Replikationen (mit TouchDB und Cloudant)
- 7. Gearman und inotify für Aufgabenausführung
- 8. Wie inotify verwenden?
- 9. inotify 'Hauptschleife'
- 10. Keine Heap-Shot-Analyse
- 11. Qt: Screen Shot
- 12. Was ist eine angemessene Menge von inotify Uhren mit Linux?
- 13. PHP Inotify Non-Blocking Weg
- 14. Verwenden Sie inotify mit MinGW
- 15. So löschen Sie Daten in der Datenbank effizient mit LinQ zu NHibernate (one-shot-delete)
- 16. Inotify-Datei in C
- 17. Problem mit GestureOverlayView/Multitouch auf Nexus One
- 18. CoreData: One-to-Many Beziehung Anzeige Problem
- 19. One-to-many-Beziehung Hibernate Problem
- 20. One zu viele in nhibernate Mapping Problem
- 21. Android/Linux-Dateiberechtigungen Problem
- 22. Linux Variable Expansion Problem?
- 23. Gibt es sowas wie Inotify unter Windows?
- 24. Lazy One-To-One Frühling JPA und Gebäude "dynamische" JSON
- 25. Symfony ONE-TO-ONE-Beziehung
- 26. Inotify dynamisch Index neue Ordner
- 27. Hibernate umgekehrt one-to-one
- 28. One-One kommen in R
- 29. Löschen One-to-One-Beziehung
- 30. Fluent NHibernate & one-to-one
Können Sie ein kleines Stück Code zeigen? – Duck
Versuchen Sie strace. Das ist eine gute Möglichkeit, zu überprüfen, ob der Code die erwarteten Systemaufrufe erzeugt. –