FreeBSD Bugzilla – Attachment 169715 Details for
Bug 196844
[patch][doc] Add EXAMPLES section to kqueue(2) man page
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
Remove EV_ONESHOT
kqueue_example.c (text/x-csrc), 1.23 KB, created by
Konstantin Belousov
on 2016-04-26 12:27:38 UTC
(
hide
)
Description:
Remove EV_ONESHOT
Filename:
MIME Type:
Creator:
Konstantin Belousov
Created:
2016-04-26 12:27:38 UTC
Size:
1.23 KB
patch
obsolete
>/* $Id: kqueue_example.c,v 1.5 2016/04/26 12:23:53 kostik Exp kostik $ */ >#include <sys/types.h> >#include <sys/event.h> >#include <sys/time.h> >#include <err.h> >#include <fcntl.h> >#include <stdio.h> >#include <stdlib.h> >#include <string.h> >#include <unistd.h> > >int >main(int argc, char **argv) >{ > struct kevent event; /* Event we want to monitor */ > struct kevent tevent; /* Event triggered */ > int kq, fd, ret; > > if (argc != 2) > err(EXIT_FAILURE, "Usage: %s path\en", argv[0]); > fd = open(argv[1], O_RDONLY); > if (fd == -1) > err(EXIT_FAILURE, "Failed to open '%s'", argv[1]); > > /* Create kqueue. */ > kq = kqueue(); > if (kq == -1) > err(EXIT_FAILURE, "kqueue() failed"); > > /* Initialize kevent structure. */ > EV_SET(&event, fd, EVFILT_VNODE, EV_ADD | EV_CLEAR, NOTE_WRITE, > 0, NULL); > /* Attach event to the kqueue. */ > ret = kevent(kq, &event, 1, NULL, 0, NULL); > if (ret == -1) > err(EXIT_FAILURE, "kevent register"); > if (event.flags & EV_ERROR) > errx(EXIT_FAILURE, "Event error: %s", strerror(event.data)); > > for (;;) { > /* Sleep until something happens. */ > ret = kevent(kq, NULL, 0, &tevent, 1, NULL); > if (ret == -1) { > err(EXIT_FAILURE, "kevent wait"); > } else if (ret > 0) { > printf("Something was written in '%s'\n", argv[1]); > } > } >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 196844
:
151802
|
169639
| 169715 |
233152
|
233158