fn pread(fd: fd_t, buf: []u8, offset: u64) PReadError!usize

Number of bytes read is returned. Upon reading end-of-file, zero is returned.

Retries when interrupted by a signal.

For POSIX systems, if fd is opened in non blocking mode, the function will return error.WouldBlock when EAGAIN is received. On Windows, if the application has a global event loop enabled, I/O Completion Ports are used to perform the I/O. error.WouldBlock is not possible on Windows.

Linux has a limit on how many bytes may be transferred in one pread call, which is 0x7ffff000 on both 64-bit and 32-bit systems. This is due to using a signed C int as the return value, as well as stuffing the errno codes into the last 4096 values. This is noted on the read man page. The limit on Darwin is 0x7fffffff, trying to read more than that returns EINVAL. The corresponding POSIX limit is math.maxInt(isize).

Parameters

fd: fd_t,
buf: []u8,
offset: u64,