- unsigned char buf[1024];
- size_t rc, written = 0;
-
- assert(lbx->f);
-
- if (_lbx_fseek(lbx->f, &lbx->foff, base) == -1)
- return 0;
-
- while (len) {
- size_t amt = MIN(len, sizeof buf);
-
- rc = fread(buf, 1, amt, lbx->f);
- lbx->foff += rc;
- len -= rc;
- if (rc < amt) {
- if (feof(lbx->f)) lbx_errno = LBX_EEOF;
- else lbx_errno = -errno;
- break;
- }