Torsten Werner > Linux-Inotify-0.05 > Linux::Inotify

Download:
inotify/Linux-Inotify-0.05.tar.gz

Dependencies

Annotate this POD (1)

Related Modules

DBD::CSV
Data::Sync
File::Tail
Data::Dumper
Class::DBI
more...
By perlmonks.org

CPAN RT

New  1
Open  1
View/Report Bugs
Module Version: 0.05   Source  

NAME ^

Linux::Inotify - Classes for supporting inotify in Linux Kernel >= 2.6.13

SYNOPSIS ^

Linux::Inotify supports the new inotify interface of Linux which is a replacement of dnotify. Beside the class Linux::Inotify there two helper classes -- Linux::Inotify::Watch and Linux::Inotify::Event.

DESCRIPTION ^

class Linux::Inotify

The following code

   use Linux::Inotify;
   my $notifier = Linux::Inotify->new();

returns a new notifier.

   my $watch = $notifier->add_watch('filename', Linux::Inotify::MASK);

adds a watch to filename (see below), where MASK is one of ACCESS, MODIFY, ATTRIB, CLOSE_WRITE, CLOSE_NOWRITE, OPEN, MOVED_FROM, MOVED_TO, CREATE, DELETE, DELETE_SELF, UNMOUNT, Q_OVERFLOW, IGNORED, ISDIR, ONESHOT, CLOSE, MOVE or ALL_EVENTS.

   my @events = $notifier->read();

reads and decodes all available data and returns an array of Linux::Inotify::Event objects (see below).

   $notifier->close();

destroys the notifier and closes the associated file descriptor.

class Linux::Inotify::Watch

The constructor new is usually not called directly but via the add_watch method of the notifier. An alternative contructor

   my $watch_clone = $watch->clone('filename');

creates an new watch for filename but shares the same $notifier and MASK. This is indirectly used for recursing into subdirectories (see below). The destructor

   $watch->remove()

destroys the watch safely. It does not matter if the kernel has already removed the watch itself, which may happen when the watched object has been deleted.

class Linux::Inotify::Event

The constructor is not called directly but through the read method of Linux::Inotify that returns an array of event objects. An Linux::Inotify::Event object has some interesting data members: mask, cookie and name. The method

   $event->fullname();

returns the full name of the file or directory not only the name relative to the watch like the name member does contain.

   $event->print();

prints the event to stdout in a human readable form.

   my $new_watch = $event->add_watch();

creates a new watch for the file/directory of the event and shares the notifier and MASK of the original watch, that has generated the event. That is useful for recursing into subdirectories.

AUTHOR ^

Copyright 2005 by Torsten Werner <twerner@debian.org>. The code is licensed under the same license as perl: perlgpl or perlartistic.

syntax highlighting: