Why is the player doing that? Or is it some quirk in libc, trying to trigger a readahead of the whole file or something?
I agree, that's certainly very odd. The player, though, just opens the file fully buffered with fopen and reads it with fgets: it must be glibc's buffering that's doing something strange with the underlying fd.

Peter