in reply to Fuse / Fuse::Simple write_buffer issues

Perl's buffered IO (read, readline) always do 4k reads, repeating if necessary. sysread, on the other hand, simply passes the requested number of bytes to the OS.
$ strace perl -e'read STDIN, $_, 12345' </dev/null 2>&1 | grep 'read(0 +' read(0, ""..., 4096) = 0 $ strace perl -e'sysread STDIN, $_, 12345' </dev/null 2>&1 | grep 'rea +d(0' read(0, ""..., 12345) = 0