in reply to Re^9: sysread/syswrite wrappers
in thread sysread/syswrite wrappers

No, it means "they don't work", because if you have some data buffered, select() will return you that no data available for read. So you have data to read, but select tells that you don't. It means they don't work at all.
File system caching is different, it's cached on OS level, so select will know about that and return "you can read".