I've just looked at FSFile and I've seen that method read() returns void. Why? The number of bytes requested may be not available (yet, because of slow connections, for example). And if user asks to read 0x10001 bytes, filesystem maybe should give 0x10000 bytes, this API does not allow this. Or maybe I don't understand something?