- count++;
- n = read(inp, buff, SIZE);
- if (n > 0) {
- nw = write(outp, buff, n);
- if (copy) {
- if (nw != n) {
- fprintf(stderr, "write (%d) != read (%d)\n",
- nw, n);
- fprintf(stderr, "COPY Aborted\n");
- exit(5);
- }
- }
- size += n;
- if (n != ln) {
- if (ln > 0)
- if (count - lcount > 1)
- printf("file %d: records %ld to %ld: size %d\n",
- filen, lcount, count-1, ln);
- else
- printf("file %d: record %ld: size %d\n",
- filen, lcount, ln);
- ln = n;
- lcount = count;
- }
+ nread = read(inp, buff, maxblk);
+ if (nread == -1) {
+ if (guesslen && maxblk > MAXREC / 2) {
+ maxblk -= 1024;
+ continue;
+ }
+ fprintf(stderr, "read error, file %d, record %d: ",
+ filen, record);
+ perror("");
+ } else if (nread != lastread) {
+ if (lastread != 0 && lastread != NOCOUNT) {
+ if (lastrec == 0 && nread == 0)
+ printf("%d records\n", record);
+ else if (record - lastrec > 1)
+ printf("records %ld to %ld\n",
+ lastrec, record);
+ else
+ printf("record %ld\n", lastrec);
+ }
+ if (nread != 0)
+ printf("file %d: block size %d: ",
+ filen, nread);
+ fflush(stdout);
+ lastrec = record;