|
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | STANDARDS | HISTORY | SEE ALSO | COLOPHON |
|
|
|
F_NOTIFY(2const) F_NOTIFY(2const)
F_NOTIFY - file and directory change notification
Standard C library (libc, -lc)
#define _GNU_SOURCE
#include <fcntl.h>
int fcntl(int fd, F_NOTIFY, int arg);
Provide notification when the directory referred to by fd or any
of the files that it contains is changed. The events to be
notified are specified in arg, which is a bit mask specified by
ORing together zero or more of the following bits:
DN_ACCESS
A file was accessed (read(2), pread(2), readv(2), and
similar)
DN_MODIFY
A file was modified (write(2), pwrite(2), writev(2),
truncate(2), ftruncate(2), and similar).
DN_CREATE
A file was created (open(2), creat(2), mknod(2), mkdir(2),
link(2), symlink(2), rename(2) into this directory).
DN_DELETE
A file was unlinked (unlink(2), rename(2) to another
directory, rmdir(2)).
DN_RENAME
A file was renamed within this directory (rename(2)).
DN_ATTRIB
The attributes of a file were changed (chown(2), chmod(2),
utime(2), utimensat(2), and similar).
(In order to obtain these definitions, the _GNU_SOURCE feature
test macro must be defined before including any header files.)
Directory notifications are normally "one-shot", and the
application must reregister to receive further notifications.
Alternatively, if DN_MULTISHOT is included in arg, then
notification will remain in effect until explicitly removed.
A series of F_NOTIFY requests is cumulative, with the events in
arg being added to the set already monitored. To disable
notification of all events, make an F_NOTIFY call specifying arg
as 0.
Notification occurs via delivery of a signal. The default signal
is SIGIO, but this can be changed using the F_SETSIG operation to
fcntl(). (Note that SIGIO is one of the nonqueuing standard
signals; switching to the use of a real-time signal means that
multiple notifications can be queued to the process.) In the
latter case, the signal handler receives a siginfo_t structure as
its second argument (if the handler was established using
SA_SIGINFO) and the si_fd field of this structure contains the
file descriptor which generated the notification (useful when
establishing notification on multiple directories).
Especially when using DN_MULTISHOT, a real time signal should be
used for notification, so that multiple notifications can be
queued.
NOTE: New applications should use the inotify interface (available
since Linux 2.6.13), which provides a much superior interface for
obtaining notifications of filesystem events. See inotify(7).
Zero.
On error, -1 is returned, and errno is set to indicate the error.
See fcntl(2).
ENOTDIR
fd does not refer to a directory.
Linux.
Linux 2.4.
fcntl(2)
This page is part of the man-pages (Linux kernel and C library
user-space interface documentation) project. Information about
the project can be found at
⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report
for this manual page, see
⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
This page was obtained from the tarball man-pages-6.15.tar.gz
fetched from
⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
2025-08-11. If you discover any rendering problems in this HTML
version of the page, or you believe there is a better or more up-
to-date source for the page, or you have corrections or
improvements to the information in this COLOPHON (which is not
part of the original manual page), send a mail to
man-pages@man7.org
Linux man-pages 6.15 2025-07-20 F_NOTIFY(2const)
Pages that refer to this page: fcntl(2)