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 unmountedDefinition in file inotifytools.h.
|
Close inotify and free the memory used by inotifytools. If you call this function, you must call inotifytools_initialize() again before any other functions can be used. Definition at line 326 of file inotifytools.c. |
|
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 1588 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 763 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 1953 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 1968 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 1983 of file inotifytools.c. |
|
Get the number of watches set up through libinotifytools.
Definition at line 1614 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 1572 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 1495 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 1518 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 2000 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 281 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 418 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 1038 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 1092 of file inotifytools.c. |
|
Remove a watch on a file specified by filename.
Definition at line 930 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 907 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 827 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 805 of file inotifytools.c. |
|
Set time format for printf functions.
Definition at line 1941 of file inotifytools.c. |
|
Set up a watch on a file.
Definition at line 953 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 975 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 1246 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 1282 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 784 of file inotifytools.c. |