Make `read` more like `write`

It's a nice cleanup.
Update docs to reflect changes to `read`/`fopen`