В man 7 socket написано следующее:
SO_SNDLOWAT is not changeable on Linux (setsockopt(2) fails with the error
ENOPROTOOPT). SO_RCVLOWAT is changeable only since Linux 2.4. The select(2) and
poll(2) system calls currently do not respect the SO_RCVLOWAT setting on Linux,
and mark a socket readable when even a single byte of data is available. A
subsequent read from the socket will block until SO_RCVLOWAT bytes are
available.
Однако, судя по тестам, которые я не поленился провести, select их таки слушается (рабочий дистр Бубунту 9.04).
Так как оно на самом деле (интересуют современные дистрибутивы/ядра Linux и, если кто с ней сталкивался и знает, ОСРВ Багет)?