The function prototypes and types are found in sys/event.h.10
Creates a new kernel event queue and returns a descriptor.
Used to register events with the queue, then wait for and return any pending events to the user. In contrast to epoll, kqueue uses the same function to register and wait for events, and multiple event sources may be registered and modified using a single call. The changelist array can be used to pass modifications (changing the type of events to wait for, register new event sources, etc.) to the event queue, which are applied before waiting for events begins. nevents is the size of the user supplied eventlist array that is used to receive events from the event queue.
A macro that is used for convenient initialization of a struct kevent object.
OS-independent libraries with support for kqueue:
Kqueue equivalent for other platforms:
Jonathan Lemon (2000). "kqueue, kevent — kernel event notification mechanism". BSD Cross Reference. FreeBSD, OpenBSD, NetBSD, DragonFly BSD. "kqueue, kevent -- kernel event notification mechanism". FreeBSD Manual Pages. "kqueue, kevent, EV_SET — kernel event notification mechanism". OpenBSD manual page server. "kqueue, kevent -- kernel event notification mechanism". DragonFly On-Line Manual Pages. http://bxr.su/f/lib/libc/sys/kqueue.2 ↩
Jonathan Lemon (2001-05-01). Kqueue: A generic and scalable event notification facility (PDF). Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference. USENIX (published June 25–30, 2001). "KQueue–A Generic and Scalable Event Notification Facility". Usenix. http://people.freebsd.org/~jlemon/papers/kqueue.pdf ↩
"Connection processing methods". nginx.org. http://nginx.org/en/docs/events.html ↩
Andrew Alexeev (2012). "§14. nginx". In Amy Brown; Greg Wilson (eds.). The Architecture of Open Source Applications, Volume II: Structure, Scale and a Few More Fearless Hacks. Lulu.com. ISBN 9781105571817. 9781105571817 ↩
libkqueue on GitHub https://github.com/mheily/libkqueue ↩
kqueue(2) – FreeBSD System Calls Manual https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2 ↩