Yes, kqueue can be used to view files for readability. On the man page:
EVFILT_READ Takes a file descriptor as the identifier, and returns whenever there is data available to read. The behavior of the filter is slightly different depending on the descriptor type. [...] Vnodes Returns when the file pointer is not at the end of file. data contains the offset from current posi- tion to end of file, and may be negative.
("vnodes" in this context are regular files.)
Since regular files are always writable, it makes no sense to apply EVFILT_WRITE to them.
source share