> On 5 Nov 2014, at 14:08, Peter <magn...@web.de> wrote:
> 
> http://stackoverflow.com/questions/12343833/cocoa-monitor-a-file-for-modifications/26304208#26304208
> 
> has some info on this.

Thanks a lot. Got it working now.

Mit freundlichen Grüßen

Gerriet.

> 
> ___ Peter Hartmann ________
> 
> mailto:hphartm...@justmail.de
> 
> 
> Am 05.11.2014 um 07:50 schrieb Gerriet M. Denkmann <gerr...@mdenkmann.de>:
> 
>> 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

Reply via email to