@justinmk `uv_fs_read` doesn't have binary success/failure status.  While it would be valid to write `read_req->result != kLibuvSuccess`, it's not a logical check.  Cribbing from libuv's [docs](http://nikhilm.github.io/uvbook/filesystem.html#reading-writing-files), once should check for error status, EOF was reached, or some number of bytes were read:

```C
    if (req->result < 0) {
        fprintf(stderr, "Read error: %s\n", uv_strerror(uv_last_error(uv_default_loop())));
    }
    else if (req->result == 0) {
        uv_fs_t close_req;
        // synchronous
        uv_fs_close(uv_default_loop(), &close_req, open_req.result, NULL);
    }
    else {
```