Go to the source code of this file.
To use this library, you must #include
the following headers accordingly:
<inotifytools/inotifytools
.h> - to use any functions declared in this file. <inotifytools/inotify
.h> - to have the inotify_event
type defined and the numeric IN_* event constants defined. If <sys/inotify
.h> was present on your system at compile time, this header simply includes that. Otherwise it includes <inotifytools/inotify-nosys
.h>.#include <stdio.h> #include <string.h> #include <inotifytools/inotifytools.h> #include <inotifytools/inotify.h> /* * libinotifytools example program. * Compile with gcc -linotifytools example.c */ int main() { // initialize and watch the entire directory tree from the current working // directory downwards for all events if ( !inotifytools_initialize() || !inotifytools_watch_recursively( ".", IN_ALL_EVENTS ) ) { fprintf(stderr, "%s\n", strerror( inotifytools_error() ) ); return -1; } // set time format to 24 hour time, HH:MM:SS inotifytools_set_printf_timefmt( "%T" ); // Output all events as "<timestamp> <path> <events>" struct inotify_event * event = inotifytools_next_event( -1 ); while ( event ) { inotifytools_printf( event, "%T %w%f %e\n" ); event = inotifytools_next_event( -1 ); } }
IN_ACCESS
- File was accessed (read) * IN_ATTRIB
- Metadata changed (permissions, timestamps, extended attributes, etc.) * IN_CLOSE_WRITE
- File opened for writing was closed * IN_CLOSE_NOWRITE
- File not opened for writing was closed * IN_CREATE
- File/directory created in watched directory * IN_DELETE
- File/directory deleted from watched directory * IN_DELETE_SELF
- Watched file/directory was itself deleted IN_MODIFY
- File was modified * IN_MOVE_SELF
- Watched file/directory was itself moved IN_MOVED_FROM
- File moved out of watched directory * IN_MOVED_TO
- File moved into watched directory * IN_OPEN
- File was opened * The IN_ALL_EVENTS macro is defined as a bit mask of all of the above events.
Two additional convenience macros are IN_MOVE, which equates to IN_MOVED_FROM|IN_MOVED_TO, and IN_CLOSE which equates to IN_CLOSE_WRITE|IN_CLOSE_NOWRITE.
The following bitmasks can also be provided when creating a new watch:
IN_DONT_FOLLOW
- Don't dereference pathname if it is a symbolic link IN_MASK_ADD
- Add (OR) events to watch mask for this pathname if it already exists (instead of replacing mask) IN_ONESHOT
- Monitor pathname for one event, then remove from watch list IN_ONLYDIR
- Only watch pathname if it is a directory
IN_IGNORED
- Watch was removed explicitly (inotifytools_remove_watch_*) or automatically (file was deleted, or file system was unmounted) IN_ISDIR
- Subject of this event is a directory IN_Q_OVERFLOW
- Event queue overflowed (wd is -1 for this event) IN_UNMOUNT
- File system containing watched object was unmountedImprove wd/filename storage. At the moment a doubly-linked list is used, so lookups take linear time. This could be a problem if watching hundreds of thousands of files.
Definition in file inotifytools.h.
|
Get the last error which occurred. When a function fails, call this to find out why. The returned value is a typical errno value, the meaning of which depends on context. For example, if inotifytools_watch_file() fails because you attempt to watch a file which doesn't exist, this function will return ENOENT.
Definition at line 1553 of file inotifytools.c. |
|
Get the filename used to establish a watch. inotifytools_initialize() must be called before this function can be used.
Definition at line 721 of file inotifytools.c. |
|
Get the event queue size. This setting can also be read or modified by accessing the file /proc/sys/fs/inotify/max_queued_events.
Definition at line 1918 of file inotifytools.c. |
|
Get the maximum number of user instances of inotify. This setting can also be read or modified by accessing the file /proc/sys/fs/inotify/max_user_instances.
Definition at line 1933 of file inotifytools.c. |
|
Get the maximum number of user watches. This setting can also be read or modified by accessing the file /proc/sys/fs/inotify/max_user_watches.
Definition at line 1948 of file inotifytools.c. |
|
Get the number of watches set up through libinotifytools.
Definition at line 1579 of file inotifytools.c. |
|
Get statistics by a particular filename. inotifytools_initialize_stats() must be called before this function can be used.
Definition at line 1537 of file inotifytools.c. |
|
Get statistics by a particular watch descriptor. inotifytools_initialize_stats() must be called before this function can be used.
Definition at line 1460 of file inotifytools.c. |
|
Get statistics aggregated across all watches. inotifytools_initialize_stats() must be called before this function can be used.
Definition at line 1483 of file inotifytools.c. |
|
Ignore inotify events matching a particular regular expression. pattern is a regular expression and flags is a bitwise combination of POSIX regular expression flags. On future calls to inotifytools_next_events() or inotifytools_next_event(), the regular expression is executed on the filename of files on which events occur. If the regular expression matches, the matched event will be ignored. Definition at line 1965 of file inotifytools.c. |
|
Initialise inotify. You must call this function before using any function which adds or removes watches or attempts to access any information about watches.
Definition at line 285 of file inotifytools.c. |
|
Initialize or reset statistics. inotifytools_initialize() must be called before this function can be used. When this function is called, all subsequent events will be tallied. Statistics can then be obtained via the inotifytools_get_stat_* functions. After the first call, subsequent calls to this function will reset the event tallies to 0. Definition at line 376 of file inotifytools.c. |
|
Get the next inotify event to occur. inotifytools_initialize() must be called before this function can be used.
Definition at line 1004 of file inotifytools.c. |
|
Get the next inotify events to occur. inotifytools_initialize() must be called before this function can be used.
Definition at line 1058 of file inotifytools.c. |
|
Remove a watch on a file specified by filename.
Definition at line 896 of file inotifytools.c. |
|
Remove a watch on a file specified by watch descriptor. inotifytools_initialize() must be called before this function can be used.
Definition at line 873 of file inotifytools.c. |
|
Set the filename for one or more watches with a particular existing filename. This function should be used to update a filename when a file is known to have been moved or renamed. At the moment, libinotifytools does not automatically handle this situation. inotifytools_initialize() must be called before this function can be used.
Definition at line 785 of file inotifytools.c. |
|
Set the filename for a particular watch descriptor. This function should be used to update a filename when a file is known to have been moved or renamed. At the moment, libinotifytools does not automatically handle this situation. inotifytools_initialize() must be called before this function can be used.
Definition at line 763 of file inotifytools.c. |
|
Set time format for printf functions.
Definition at line 1906 of file inotifytools.c. |
|
Set up a watch on a file.
Definition at line 919 of file inotifytools.c. |
|
Set up a watch on a list of files. inotifytools_initialize() must be called before this function can be used.
Definition at line 941 of file inotifytools.c. |
|
Set up recursive watches on an entire directory tree. inotifytools_initialize() must be called before this function can be used.
Definition at line 1212 of file inotifytools.c. |
|
Set up recursive watches on an entire directory tree, optionally excluding some directories. inotifytools_initialize() must be called before this function can be used.
Definition at line 1248 of file inotifytools.c. |
|
Get the watch descriptor for a particular filename. inotifytools_initialize() must be called before this function can be used.
Definition at line 742 of file inotifytools.c. |