ssize_t write_pos(int handle, off_t offs, const void *in, size_t length) { FileDescriptor *descriptor = static_cast<FileDescriptor*>(GetResource(handle, OBJ_FD)); if (descriptor == 0) return E_BAD_HANDLE; size_t ret = descriptor->WriteAt(offs, in, length); descriptor->ReleaseRef(); return ret; }