Make dnotify_test.c source file and add it to Makefile so that bitrot can be prevented. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			772 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			772 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
#define _GNU_SOURCE	/* needed to get the defines */
 | 
						|
#include <fcntl.h>	/* in glibc 2.2 this has the needed
 | 
						|
				   values defined */
 | 
						|
#include <signal.h>
 | 
						|
#include <stdio.h>
 | 
						|
#include <unistd.h>
 | 
						|
 | 
						|
static volatile int event_fd;
 | 
						|
 | 
						|
static void handler(int sig, siginfo_t *si, void *data)
 | 
						|
{
 | 
						|
	event_fd = si->si_fd;
 | 
						|
}
 | 
						|
 | 
						|
int main(void)
 | 
						|
{
 | 
						|
	struct sigaction act;
 | 
						|
	int fd;
 | 
						|
 | 
						|
	act.sa_sigaction = handler;
 | 
						|
	sigemptyset(&act.sa_mask);
 | 
						|
	act.sa_flags = SA_SIGINFO;
 | 
						|
	sigaction(SIGRTMIN + 1, &act, NULL);
 | 
						|
 | 
						|
	fd = open(".", O_RDONLY);
 | 
						|
	fcntl(fd, F_SETSIG, SIGRTMIN + 1);
 | 
						|
	fcntl(fd, F_NOTIFY, DN_MODIFY|DN_CREATE|DN_MULTISHOT);
 | 
						|
	/* we will now be notified if any of the files
 | 
						|
	   in "." is modified or new files are created */
 | 
						|
	while (1) {
 | 
						|
		pause();
 | 
						|
		printf("Got event on fd=%d\n", event_fd);
 | 
						|
	}
 | 
						|
}
 |