[TUHS] head/sed/tail (was The Unix shell: a 50-year view)

Douglas McIlroy douglas.mcilroy at dartmouth.edu
Fri Jul 16 08:00:19 AEST 2021


>> -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


More information about the TUHS mailing list