Supported by libMapRClient for hadoop-2.x
Reads an open file from a specified offset.
Whereas hdfsRead() increments the current offset in the file by the
number of bytes that are read, hdfsPread() does not change the current
offset. For example, if the current offset is 0 and hdfsPread() starts
reading from offset 100, after the read the current offset is still 0.
tSize hdfsPread(hdfsFS fs, hdfsFile file, tOffset position, void* buffer, tSize length)
| Parameter | Description |
|---|---|
| fs | The handle of the filesystem where the file is
located. Obtain this handle with one of the
hdfsConnect() APIs. |
| file | The file handle. Obtain this handle with one of
the hdfsOpenFile() APIs. |
| position | Offset from which to read. |
| buffer | The buffer to copy read bytes into. |
| length | The length of the buffer. The maximum size of
tSize is the maximum buffer length. |
Returns the number of bytes actually read, which can be less than than the length of the buffer if the end of the file is reached during the read. Returns -1 on error.
On error, errno is set to one of the following values:
To recover from errors, close the file by calling
hdfsCloseFile().