Re: kqueue, observing files, find who does the modification
Re: kqueue, observing files, find who does the modification
- Subject: Re: kqueue, observing files, find who does the modification
- From: "mm w" <email@hidden>
- Date: Sun, 19 Oct 2008 13:38:54 -0700
struct kevent my_kevent;
int my_kq = -1;
pid_t my_pid = 0;
if (-1 == (my_kq = kqueue()))
perror("trigger_error:kqueue");
printf("trigger:current_pid %d\n", getpid());
my_pid = fork();
if (-1 == my_pid)
perror("trigger_error:fork");
else if (0 == my_pid) {
perror("trigger_error:");
} else {
printf("trigger:new child pid %d\n", my_pid);
}
my_kevent.ident = my_pid; /* identifier for this event */
my_kevent.filter = EVFILT_PROC; /* filter for event */
my_kevent.flags = EV_ADD; /* action flags for kqueue */
my_kevent.fflags = NOTE_FORK|NOTE_TRACK; /* filter flag value */
my_kevent.data = 0; /* filter data value */
my_kevent.udata = NULL; /* opaque user data identifier */
if (kevent(my_kq, &my_kevent, 0, NULL, 1, NULL) == -1)
perror("trigger_error:kevent");
On Sun, Oct 19, 2008 at 3:57 AM, devmaillists <email@hidden> wrote:
> Hello Terry,
> thanky very much, but I have to be compatible with 10.4. So fsevent is not
> an option for me (doc shows avail 10.5)
> You wrote: if you monitor specific files it works
> Yes I do, how does it work to get for a specific file a reference to the
> modifying process?
> Thanks Jürgen
> On 18.10.2008, at 20:02, Terry Lambert wrote:
>
> On Oct 18, 2008, at 3:36 AM, devmaillists <email@hidden> wrote:
>
> Dear List,
> I have the challenge to observe files for modification.
> The difficulty is to filter on the modifing processes.
> I need a way to get the PSN / PID of the modifing process / the process that
> triggered the event I get in:
> int event_count = kevent(kq, events_to_monitor, NUM_EVENT_SLOTS, event_data,
> num_files, &timeout);
>
> You can't do that for arbitrary files using kevent; if you monitor specific
> files it works. If you want arbitrary files, you need to use fsevent in user
> space, or if you want to interpose the operation, kauth in a KEXT. If the
> latter, go to <http://developer.apple.com> and look for "kauthorama".
> -- Terry
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Darwin-kernel mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
--
-mmw
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden