> -f is a strange feature that effectively turns a
regular file into a pipe
> with memory by polling for new data, A clean general alternative
> might be to provide an open(2) mode that makes reads at the current
> file end block if some process has the file open for writing.
OTOH, this would mean adding more functionality (read:
complexity)
into the kernel, and there has always been a general desire to avoid
pushing <stuff> into the kernel when it can be done in userspace. Do
you really think using a blocking read(2) is somehow more superior
than using select(2) to wait for new data to be appended to the file?
I'm showing my age. tail -f antedated select(2) and was implemented
by alternately sleeping and reading. select(2) indeed overcomes that
clumsiness.
I'll note, with amusement, that -r is one option
which is *NOT* in the
GNU version of tail. I see it in FreeBSD, but this looks like a
BSD'ism.
-r came from Bell Labs. This reinforces the point that the ancients
had their imperfections.
Doug