hdfsPread()

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.

Signature

tSize  hdfsPread(hdfsFS fs, hdfsFile file, tOffset position, void* buffer, tSize length)

Parameters

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.

Return Value

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().