About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / filesystems / dnotify_test.c


Based on kernel version 4.8. Page generated on 2016-10-06 23:15 EST.

1	#define _GNU_SOURCE	/* needed to get the defines */
2	#include <fcntl.h>	/* in glibc 2.2 this has the needed
3					   values defined */
4	#include <signal.h>
5	#include <stdio.h>
6	#include <unistd.h>
7	
8	static volatile int event_fd;
9	
10	static void handler(int sig, siginfo_t *si, void *data)
11	{
12		event_fd = si->si_fd;
13	}
14	
15	int main(void)
16	{
17		struct sigaction act;
18		int fd;
19	
20		act.sa_sigaction = handler;
21		sigemptyset(&act.sa_mask);
22		act.sa_flags = SA_SIGINFO;
23		sigaction(SIGRTMIN + 1, &act, NULL);
24	
25		fd = open(".", O_RDONLY);
26		fcntl(fd, F_SETSIG, SIGRTMIN + 1);
27		fcntl(fd, F_NOTIFY, DN_MODIFY|DN_CREATE|DN_MULTISHOT);
28		/* we will now be notified if any of the files
29		   in "." is modified or new files are created */
30		while (1) {
31			pause();
32			printf("Got event on fd=%d\n", event_fd);
33		}
34	}
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog