#include #include "inotify.h" void geteventname(unsigned long event,char *buffer,int n) { unsigned long events[6]= { IN_ACCESS, IN_MODIFY, IN_CREATE, IN_DELETE, IN_RENAME, IN_ATTRIB }; const char *names[6]= { "IN_ACCESS", "IN_MODIFY", "IN_CREATE", "IN_DELETE", "IN_RENAME", "IN_ATTRIB" }; int i; strncpy(buffer,"",n); for(i=0;i<6;i++) { if(event&events[i]) { if(strlen(buffer)>0) strncat(buffer,"|",n); strncat(buffer,names[i],n); } } } int main() { FILE *file; in_info info; int len; char eventname[256]; file=fopen("/dev/inotify","rb"); if(!file) { printf("Error: could not open /dev/inotify!\n"); return -1; } while(1) { len=fread(&info,1,sizeof(info),file); if(len==sizeof(info)) { info.name[DNAME_LEN-1]=0; geteventname(info.event,eventname,255); printf("%s %lu %lu %lu %s\n", eventname, info.file_ino, info.src_ino, info.dst_ino, info.name); } usleep(200); } fclose(file); }