I want to monitor a file for changed content. Polling is generally not a good idea, so I tried dispatch_source.
But it does not work. Here the code: static NSString *const kTestPath = @"/tmp/a.test"; - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { const char *filename = kTestPath.fileSystemRepresentation; int fd = open(filename, O_RDONLY); fcntl(fd, F_SETFL, O_NONBLOCK); uintptr_t fD = (uintptr_t)fd; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); const uint64_t flags = DISPATCH_VNODE_WRITE | DISPATCH_VNODE_LINK; dispatch_source_t my_source = dispatch_source_create(DISPATCH_SOURCE_TYPE_VNODE, fD, flags, queue); dispatch_source_set_event_handler(my_source, ^{ [self fileDidChange]; } ); dispatch_resume(my_source); } - (void)fileDidChange { NSLog(@"%s",__FUNCTION__); // never seen } - (IBAction)buttonClicked: sender { static NSUInteger seqq = 0; seqq++; const char *stats_temp_file = "/tmp/a.temp"; FILE *fp = fopen(stats_temp_file, "w"); fprintf(fp, "%lu\n", seqq); (void)fclose(fp); const char *filename = kTestPath.fileSystemRepresentation; int a = rename(stats_temp_file, filename); } What am I doing wrong? (Writing directly to kTestPath without rename() also does not work). Gerriet. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com