ssize_t read_pos(int handle, off_t offs, void *out, size_t length) { FileDescriptor *descriptor = static_cast<FileDescriptor*>(GetResource(handle, OBJ_FD)); if (descriptor == 0) return E_BAD_HANDLE; ssize_t err = descriptor->ReadAt(offs, out, length); descriptor->ReleaseRef(); return err; }